如何让本地分支与远程分支建立映射关系

git 建分支很 cheap,本地和远程都常常各自拥有大量分支,有时本地分支需要跟某个新的远程分支建立追踪映射,以便于在 pull、 push 等操作时,简化命令,也在一定程度上防止误传到其他分支。今天建立了新的远程分支,本地不想弄一个新的跟它对应,想用当前分支换个关联,用到了该技能。

核心命令

1
git branch --set-upstream-to=[remote-name/remote-branch-name]

详解:

完成同样效果的命令还有:

git 1.8 以上

1
2
3
git branch -u [remote-name/remote-branch-name]
# or 如果要关联的本地分支不是当前分支
git branch -u [remote-name/remote-branch-name] [local-branch-name]

如果比较喜欢比较长的命令写法(我比较喜欢,是不是很变态,哈哈),可以:

1
2
3
git branch --set-upstream-to=[remote-name/remote-branch-name]
# or 如果要关联的本地分支不是当前分支
git branch --set-upstream-to=[remote-name/remote-branch-name] [local-branch-name]

例如,我有个本地分支 dev,想跟远程 origin 的 v1.1 关联:

1
2
3
4
5
6
7
8
9
#如果当前就在 dev 分支上:
git branch -u origin/v1.1
#or
git branch --set-upstream-to=origin/v1.1

#如果当前不在 dev 分支上:
git branch -u origin/v1.1 dev
#or
git branch --set-upstream-to=origin/v1.1 dev

git 1.7 以上(已经在2.几版本停用)

1
git branch --set-upstream dev origin/v1.1

如果要在 check 分支的时候进行映射

check 到与远程分支同名的本地分支 v1.1

1
git checkout --track origin/v1.1   #git 1.6.2 以上

check 到与远程分支不同名的分支 dev2

1
git checkout -b dev2 origin/v1.1

查看本地分支与远程分支的映射情况

1
git branch -vv