目錄
安裝工具
- linux下安裝git
sudo apt-get install git
- windows下使用git
建議安裝git-bash工具使用
設(shè)置機(jī)器標(biāo)識(shí)
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
目的是讓遠(yuǎn)程倉(cāng)庫(kù)識(shí)別身份,Your Name是讓倉(cāng)庫(kù)識(shí)別你的名字,在代碼提交歷史中就會(huì)以這個(gè)名字顯示你的記錄。
本地倉(cāng)庫(kù)操作
1.創(chuàng)建本地倉(cāng)庫(kù)
在指定目錄下創(chuàng)建一個(gè)文件夾,并將文件夾變成版本倉(cāng)庫(kù)
mkdir firstMode //創(chuàng)建文件
cd firstMode //進(jìn)入文件
git init //初始化為本地倉(cāng)庫(kù)
2.提交文件到倉(cāng)庫(kù)
1.在firstMode文件中創(chuàng)建README.md文件(類似工程中添加了代碼或者文件)
2.將文件添加到倉(cāng)庫(kù)
git add README.md
- 3.提交文件到倉(cāng)庫(kù)
git commit -m "message" //message標(biāo)識(shí)提交的日志
git commit --amend //可以對(duì)上一次的提交做修改
3.查看版本區(qū)別
- 查看版本情況
git status
- 對(duì)比當(dāng)前修改和倉(cāng)庫(kù)版本的不同(這里的倉(cāng)庫(kù)指本地倉(cāng)庫(kù))
git diff filename
4.版本后退
- 查看版本日志
git log
- 回滾到上個(gè)版本
git reset --hard HRAD^
git reset --hard 版本號(hào)
- 查看歷史命令
git reflog
- 通過查看歷史命令獲取版本號(hào)
git rm filename
git checkout -- filename
git reset HEAD filename
- 版本回退后,強(qiáng)制推送到遠(yuǎn)程分支
git push -f
5.分支管理
-
查看分支
git branch //查看本地倉(cāng)庫(kù)的分支 git branch -a //查看遠(yuǎn)程倉(cāng)庫(kù)的分支
-
創(chuàng)建分支并切換到該分支
git checkout -b dev
-
創(chuàng)建分支
git branch dev
-
切換到該分支
git checkout dev
-
刪除該分支
git branch -d dev
-
合并某分支到當(dāng)前分支
git merge dev
-
刪除遠(yuǎn)程分支
git push origin --delete dev
-
本地分支和遠(yuǎn)程分支建立關(guān)聯(lián)
git branch --set-upstream v1.9.0 origin/v1.9.0
-
更新遠(yuǎn)程信息到本地
git fetch -v
遠(yuǎn)程倉(cāng)庫(kù)操作
1.綁定sshkey
-
1.創(chuàng)建本地的密鑰
因?yàn)間it-bash本身集成了ssh,所以我們可以方便的直接使用ssh的相關(guān)命令。
ssh-keygen -t rsa //創(chuàng)建ssh密鑰
根據(jù)提示輸入:
存儲(chǔ)文件密鑰的位置(直接回車鍵,創(chuàng)建在默認(rèn)的目錄下)
輸入密碼
再次輸入密碼(如果設(shè)置了密碼,每次提交代碼需要輸入這個(gè)密碼,所以不建議設(shè)置密碼) -
2.將公鑰添加到github
點(diǎn)擊右端小頭像-->settings-->SSH keys
打開公鑰將公鑰復(fù)制到github上。vim ~/.ssh/id_rsa.pub
-
3.使用中可能遇到的問題
-
(1)找不到ssh私
通過ssh-add ~/.ssh/id_rsa命令,添加私鑰。
-
(2)無(wú)法執(zhí)行添加私鑰
在添加私鑰時(shí),經(jīng)常會(huì)出現(xiàn):
ould not open a connection to your authentication agent.
可以通過執(zhí)行這個(gè)命令解決:
ssh-agent bash
-
2.修改遠(yuǎn)程服務(wù)器鏈接等問題
- 添加遠(yuǎn)程服務(wù)器連接
git remote add origin url
- 修改遠(yuǎn)程服務(wù)器鏈接
git remote set-url origin url
- 查看遠(yuǎn)程倉(cāng)庫(kù)地址
git remote -v
3.從遠(yuǎn)程倉(cāng)庫(kù)中拉取到本地
-
1.通過clone
在安裝好git,并在遠(yuǎn)程倉(cāng)庫(kù)中綁定ssh之后,在指定目錄中執(zhí)行:
git clone url
就能將遠(yuǎn)程倉(cāng)庫(kù)的master分支拉去到本地,并且本地倉(cāng)庫(kù)處于master分支;
-
2.通過pull
在綁定了ssh、初始化本地倉(cāng)庫(kù)、添加遠(yuǎn)程服務(wù)連接之后,這個(gè)時(shí)候本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)已經(jīng)形成了關(guān)聯(lián)。也就說在完成上面的幾個(gè)步驟,本地倉(cāng)庫(kù)已經(jīng)處于master分支。但是,這個(gè)時(shí)候沒辦法查看遠(yuǎn)程的分支情況,原因是本地創(chuàng)建的倉(cāng)庫(kù)的.git信息和遠(yuǎn)程倉(cāng)庫(kù)不同步,可以通過拉去遠(yuǎn)程信息到本地:
git fetch
這個(gè)步驟是將遠(yuǎn)程的信息拉去到本地,放到.git文件中。
通過pull 命令就可以拉去遠(yuǎn)程倉(cāng)庫(kù)的master分支的代碼了
git pull origin master
如果要拉去其他分支的代碼,只需要切換到分支,并拉取:
git checkout -b dev //切換分支 git pull origin tinker_dev //拉取
4.提交到遠(yuǎn)程倉(cāng)庫(kù)
在將代碼提交到本地倉(cāng)庫(kù)之后,這個(gè)時(shí)候可以通過下面的命令,將本地的代碼同步到遠(yuǎn)程倉(cāng)庫(kù)中:
git push origin dev
dev是當(dāng)前分支,提交代碼也是對(duì)應(yīng)到遠(yuǎn)程倉(cāng)庫(kù)的分支中。如果遠(yuǎn)程倉(cāng)庫(kù)中沒有該分支,會(huì)提醒是否繼續(xù)提交,如果提交成功則遠(yuǎn)程倉(cāng)庫(kù)中也有了該分支。
5.標(biāo)簽管理
- 給當(dāng)前commit打標(biāo)簽
git tag tagname
- 給指定的commit打標(biāo)簽
git tag tagname commitnum
- 創(chuàng)建帶有說明的標(biāo)簽
git tag -a tagname -m "version 0.1 released" commitnum
- 查詢標(biāo)簽
git tag
- 查詢標(biāo)簽修改內(nèi)容
git show tagname
- 刪除標(biāo)簽
git tag -d tagname
- 在本地打上標(biāo)簽,只會(huì)在本地,如果想要推送某個(gè)標(biāo)簽到遠(yuǎn)程
git push origin v1.0
- 一次性推送全部尚未推送到遠(yuǎn)程的本地標(biāo)簽
git push origin --tags
- 刪除遠(yuǎn)程的標(biāo)簽,先刪除本地標(biāo)簽,然后在執(zhí)行以下代碼
git push origin :refs/tags/tagname
<a id="label">跳到這里來</a>
參考
參考網(wǎng)址:
http://fooklook.com/blog/toolnote
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000