[摘自git官方] 官方文档地址
跟踪分支是与远程分支有直接关系的本地分支。 如果在一个跟踪分支上输入
git pull
,Git 能自动地识别去哪个服务器上抓取、合并到哪个分支。
创建分支时 本地分支与远程分支设置为不同名字,自动跟踪:git checkout -b [branch] [remotename]/[branch]
设置已有的本地分支跟踪一个刚刚拉取下来的远程分支,或者想要修改正在跟踪的上游分支,你可以在任意时间使用
-u
或--set-upstream-to
选项运行git branch
来显式地设置。设置已有的本地分支跟踪一个刚刚拉取下来的远程分支
git branch -u origin/serverfix
修改正在跟踪的上游分支
git branch --set-upstream-to=origin/branch-name branch-name
如果想要查看设置的所有跟踪分支,可以使用
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
iss53
分支: 正在跟踪origin/iss53
并且 “ahead” 是 2,意味着本地有两个提交还没有推送到服务器上。
master
分支:正在跟踪origin/master
分支并且是最新的。
serverfix
分支:正在跟踪teamone
服务器上的server-fix-good
分支并且领先 3 落后 1,意味着服务器上有一次提交还没有合并入同时本地有三次提交还没有推送。
testing
分支:并没有跟踪任何远程分支。注意: 这些数字的值来自于你从每个服务器上最后一次抓取的数据。如果想要统计最新的领先与落后数字,需要在运行此命令前抓取所有的远程仓库。 可以像这样做:
$ git fetch --all; git branch -vv