小编典典

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

all

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

$ 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,但到目前为止已经出现了铺位。


阅读 76

收藏
2022-07-04

共1个答案

小编典典

使用 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) 中会导致

  1. (bug)所有创建的分支来跟踪master
  2. (烦恼)所有创建的本地分支名称都以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 似乎更喜欢本地分支。

2022-07-04