将所有远程git分支跟踪为本地分支。

  • 回答 (2)
  • 关注 (0)
  • 查看 (16)

将单个远程分支作为本地分支进行跟踪非常简单。

$ 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似乎更喜欢本地分支,因为它应该。

uncle_light培知回答于

Otto给出的答案是好的,但是所有创建的分支都将以“source/”作为名称的开头。如果只希望最后一部分(最后/之后)成为分支名称,请使用以下命令:

for remote in `git branch -r | grep -v /HEAD`; do git checkout --track $remote ; done

它也有好处,没有给你任何关于模糊参考的警告。

扫码关注云+社区