查看所有遠程引用:
$ git ls-remote From ssh://someone@example/testgit ebf3ef7551603cd57a699e80db0bfab36d1aa7b0 HEAD ebf3ef7551603cd57a699e80db0bfab36d1aa7b0 refs/heads/master 9d4073a1052c6d62d28b6802461b0f401731ccef refs/tags/v1_tag ca71d3b05cf56743b291d412e31001ec17d5e529 refs/tags/v1_tag^{}
跟蹤遠程分支:
克隆一個倉庫時,它通常會自動地創建一個跟蹤 origin/master
的 master
分支。
創建本地分支跟蹤遠程分支:git checkout -b [branch] [remotename]/[branch]
$ git checkout -b sf origin/serverfix Branch sf set up to track remote branch serverfix from origin. Switched to a new branch 'sf'
或者使用--track,這時本地分支名字和遠程分支的名字一樣。
$ git checkout --track origin/serverfix Branch serverfix set up to track remote branch serverfix from origin. Switched to a new branch 'serverfix'
具有跟蹤關系的本地分支和遠程分支可以自動pull、push和fetch。
設置已有的本地分支跟蹤一個剛剛拉取下來的遠程分支,或者想要修改正在跟蹤的上游分支,你可以在任意時間使用 -u
或 --set-upstream-to
選項運行 git branch
來顯式地設置。
$ git branch -u origin/serverfix
Branch serverfix set up to track remote branch serverfix from origin.
上游快捷方式:
當設置好跟蹤分支后,可以通過 @{upstream}
或 @{u}
快捷方式來引用它。 所以在master
分支時並且它正在跟蹤 origin/master
時,如果願意的話可以使用 git merge @{u}
來取代 git merge origin/master
。
如果想要查看設置的所有跟蹤分支,可以使用 git branch
的 -vv
選項
$ git branch -vv iss53 7e424c3 [origin/iss53: ahead 2] forgot the brackets master 1ae2a45 [origin/master] deploying index fix * serverfix f8674d9 [teamone/server-fix-good: ahead 3, behind 1] this should do it testing 5ea463a trying something new
可以看到 serverfix
分支正在跟蹤 teamone
服務器上的 server-fix-good
分支並且領先 2 落后 1,意味着服務器上有一次提交還沒有合並入同時本地有三次提交還沒有推送。 最后看到 testing
分支並沒有跟蹤任何遠程分支。
需要重點注意的一點是這些數字的值來自於你從每個服務器上最后一次抓取的數據。 這個命令並沒有連接服務器,它只會告訴你關於本地緩存的服務器數據。 如果想要統計最新的領先與落后數字,需要在運行此命令前抓取所有的遠程倉庫。 可以像這樣做:$ git fetch --all; git branch -vv
刪除遠程分支:
$ git push origin --delete serverfix To https://github.com/schacon/simplegit - [deleted] serverfix