将单个远程分支作为本地分支进行跟踪非常简单。
$ 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
我已经用谷歌搜索和 RTM,但到目前为止已经出现了铺位。
使用 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
学分: Val Blant、埃利亚斯和雨果
在 git 1.9.1 之前
注意: 以下代码如果用在更高版本的 git (>v1.9.1) 中会导致 (bug)所有创建的分支来跟踪master (烦恼)所有创建的本地分支名称都以origin/
注意: 以下代码如果用在更高版本的 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 似乎更喜欢本地分支。