跟踪单个远程分支作为本地分支非常简单。
$ git checkout --track -b ${branch_name} origin/${branch_name}
将所有本地分支推到远程,根据需要创建新的远程分支也很容易。
$ git push --all origin
我想做相反的事情。如果我在一个源上有X个远程分支:
$ git branch -r
branch1
branch2
branch3
.
.
.
我是否可以为所有这些远程分支创建本地跟踪分支,而不需要手动创建每个分支?可以这样说:
$ git checkout --track -b --all origin
我用谷歌搜索了一下,但到目前为止都是胡扯。
使用bash:
git 1.9.1之后
for i in `git branch -a | grep remote | grep -v HEAD | grep -v master`; do git branch --track ${i#remotes/origin/} $i; done
学分:瓦尔·布兰特、埃利亚斯和雨果
git 1.9.1之前
注意:以下代码如果在git (>v1.9.1)的更高版本中使用,会导致
(错误)所有创建的分支跟踪主
(烦恼)所有创建的本地分支名称都以origin/作为前缀
for remote in `git branch -r `; do git branch --track $remote; done
更新分支,假设你的本地跟踪分支没有变化:
for remote in `git branch -r `; do git checkout $remote ; git pull; done
忽略模棱两可的refname警告,git似乎更喜欢本地分支。