多人協作
利用git remote
可以查看遠程庫的信息
<pre><code>$ git remote
origin
</code></pre><p>
也可以利用git remote -v
顯示更詳細的信息:
<pre><code>$ git remote -v
origin git@github.com:michaelliao/learngit.git (fetch)
origin git@github.com:michaelliao/learngit.git (push)</code></pre><p>
推送分支
master分支是主分支,因此要時刻與遠程同步;
dev分支是開發分支,團隊所有成員都需要在上面工作,所以也需要與遠程同步;
bug分支只用于在本地修復bug,就沒必要推到遠程了,除非老板要看看你每周到底修復了幾個bug;
feature分支是否推到遠程,取決于你是否和你的小伙伴合作在上面開發。
抓取分支
若你的同事已經向origin/dev
分支推送了他的提交,而碰巧你也對同樣的文件作了修改,并試圖推送,就會發生推送失敗,需用git pull
來把最新的提交從origin/dev
抓下來,然后,在本地合并,解決沖突,再推送.
如果git pull
也失敗了,原因是沒有指定本地dev
分支與遠程origin/dev
分支的鏈接,根據提示,設置dev
和origin/dev
的鏈接:
<pre><code>$ git branch
--set-upstream dev origin/dev
Branch dev set up to track remote branch dev from origin.
</code></pre><p>
之后進行git pull
多人協作模式
首先,可以試圖用git push origin branch-name推送自己的修改;
如果推送失敗,則因為遠程分支比你的本地更新,需要先用git pull試圖合并;
如果合并有沖突,則解決沖突,并在本地提交;
沒有沖突或者解決掉沖突后,再用git push origin branch-name推送就能成功!
如果git pull
提示“no tracking information”,則說明本地分支和遠程分支的鏈接關系沒有創建,用命令git branch --set-upstream branch-name origin/branch-name
。
標簽管理
tag就是一個讓人容易記住的有意義的名字,它跟某個commit綁在一起,而不像commit號繞口,不像分支那樣可以移動。
創建標簽
- 切換到需要打標簽的分支上:
- 敲命令
git tag <name>
就可以打一個新標簽
PS:
命令git tag <name>用于新建一個標簽,默認為HEAD,也可以指定一個commit id;
git tag -a <tagname> -m "blablabla..."可以指定標簽信息;
git tag -s <tagname> -m "blablabla..."可以用PGP簽名標簽;
命令git tag可以查看所有標簽。
操作標簽
命令git tag -d <tagname>
可以刪除一個本地標簽,因為創建的標簽都只存儲在本地,不會自動推送到遠程。所以,打錯的標簽可以在本地安全刪除。
如果要推送某個標簽到遠程,使用命令 git push origin <tagname> ,或者,一次性推送全部尚未推送到遠程的本地標簽git push origin --tags
如果標簽已經推送到遠程,先從本地刪除:
然后,從遠程刪除:
<pre><code>$ git push origin :refs/tags/v0.9
To git@github.com:michaelliao/learngit.git
- [deleted] v0.9
</code></pre><p>