git基础教程(35) 远程分支和本地分支的绑定,track

Posted 奇妙之二进制

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git基础教程(35) 远程分支和本地分支的绑定,track相关的知识,希望对你有一定的参考价值。

1:其实在从远程分支分出来的分支都是跟踪分支(track),当对该分支进行 push 和 pull 时,如果该分支和远程分支同名 git 会知道推送到远程哪个分支,从哪个远程分支同步到本地分支。其实每次克隆一个仓库时,本地都会新建一个 master 分支来track 远程的 origin/master。如果不同名,我们需要人为指定 git push origin branch_name

2:如果本地新建了一个分支 branch_name,但是在远程没有,这时候 push 和 pull 指令就无法确定该跟踪谁,一般来说我们都会使其跟踪远程同名分支,所以可以利用** git push --set-upstream origin branch_name ,这样就可以自动在远程创建一个 branch_name 分支,然后本地分支会 track 该分支。后面再对该分支使用 push 和 pull 就自动同步**。无需再指定分支。

3:跟踪远程分支

1)如果远程新建了一个分支,本地没有该分支,可以利用** git checkout --track origin/branch_name** ,这时本地会新建一个分支名叫 branch_name ,会自动跟踪****远程的同名分支 branch_name。

从图中就可以看到本来远程有一个 test1 分支,本地没有,利用该指令后,本地分支就出现了 test1。

2)用上面 1) 中方法,得到的分支名永远和远程的分支名一样,如果想新建一个本地分支不同名字,同时跟踪一个远程分支可以利用:

git checkout -b new_branch_name branch_name

这条指令本来是根据一个 branch_name 分支分出一个本地分支 new_branch_name,但是如果所根据的分支 branch_name 是一个远程分支名,那么本地的分支会自动的 track 远程分支。建议跟踪分支和被跟踪远程分支同名。

$ git checkout -b test origin/test
Branch test set up to track remote branch test from origin.
Switched to a new branch 'test'

也可以使用git branch (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>] 来达到同样效果,如果没有指定作用于哪个branch,则会作用于当前branch。

总结:一般我们就利用 git push --set-upstream origin branch_name 来在远程创建一个与本地branch_name 分支同名的分支并跟踪;利用 git checkout --track orgin/branch_name 来在本地创建一个与 branch_name 同名分支跟踪远程分支。
–set-upstream可以简写成-u。
–track可以简写成-t。

以上是关于git基础教程(35) 远程分支和本地分支的绑定,track的主要内容,如果未能解决你的问题,请参考以下文章

Git使用手册/Git教程:git fetch 将远程仓库的分支及分支最新版本代码拉取到本地

git基础教程(42) 为何我clone的项目可以直接pull,push,而我自建项目却无法直接push

[git] git拉取远程仓库,同步远程分支,解决冲突

Git 拉取远程代码

git基础命令

git简单教程