将单个远程分支作为本地分支进行跟踪非常简单。
$ 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:
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
忽略不明确的折射警告,git似乎更喜欢本地分支,因为它应该。
Otto给出的答案是好的,但是所有创建的分支都将以“source/”作为名称的开头。如果只希望最后一部分(最后/之后)成为分支名称,请使用以下命令:
for remote in `git branch -r | grep -v /HEAD`; do git checkout --track $remote ; done
它也有好处,没有给你任何关于模糊参考的警告。