从远程分支checkout出来的本地分支,称为_跟踪分支(tracking branch)_。跟踪分支是一种和远程分支有直接联系的本地分支。在跟踪分支里输入git push,Git 会自行推断应该向哪个服务器的哪个分支推送数据。反过来,在这些分支里运行git
pull会获取所有远程索引,并把它们的数据都合并到本地分支中来。
在克隆仓库时,Git 通常会自动创建一个名为master的分支来跟踪origin/master。这正是git push和git pull一开始就能正常工作的原因。当然,你可以随心所欲地设定为其它跟踪分支,比如origin上除了master之外的其它分支。刚才我们已经看到了这样的一个例子:git
checkout -b [分支名] [远程名]/[分支名]。
shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (master)
$ git checkout --track origin/br-2.1.2.1
Branch br-2.1.2.1 set up to track remote branch br-2.1.2.1 from origin.
Switched to a new branch 'br-2.1.2.1'
shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (br-2.1.2.1)
$ git status
# On branch br-2.1.2.1
nothing to commit, working directory clean
shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (br-2.1.2.1)
$ git br
* br-2.1.2.1
br-2.1.2.2
master
shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (br-2.1.2.1)
删掉刚才track的分支
shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (master)
$ git br
br-2.1.2.1
br-2.1.2.2
* master
shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (master)
$ git status
# On branch master
nothing to commit, working directory clean
shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (master)
$ git branch -d br-2.1.2.1
warning: deleting branch 'br-2.1.2.1' that has been merged to
'refs/remotes/origin/br-2.1.2.1', but not yet merged to HEAD.
Deleted branch br-2.1.2.1 (was cec094b).
shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (master)
$ git br -v
br-2.1.2.2 1dfeab3 [behind 9] 升级META客户端2.1.4.4
* master 89700a3 optimize upload file
使用checkout命令,创建新的分支 br-2.1.2.1,跟踪远程的origin/br-2.1.2.1
shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (master)
$ git checkout -b br-2.1.1.1 origin/br-2.1.2.1
Branch br-2.1.1.1 set up to track remote branch br-2.1.2.1 from origin.
Switched to a new branch 'br-2.1.1.1'
shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (br-2.1.1.1)
$ git status
# On branch br-2.1.1.1
nothing to commit, working directory clean
shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (br-2.1.1.1)
$ git branch -a
* br-2.1.1.1
br-2.1.2.2
master
remotes/origin/HEAD -> origin/master
remotes/origin/br-2.1.2.1
remotes/origin/br-2.1.2.2
remotes/origin/br-2.1.3
remotes/origin/master