跟踪单个远程分支作为本地分支非常简单。
$ 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
我用谷歌搜索了一下,但到目前为止都是胡扯。
VonC的解决方案可以通过改变sed进一步简化(我缺乏代表点直接评论他的帖子):
for branch in $(git branch -r | sed 's,[^/]*/,,g'); do git switch $branch; done
通过替换所有非斜杠直到最后一个斜杠的内容,剩余的分支名称适合本地使用;重复切换到同一个分支并不是错误(这可能效率较低,但可能比在管道中使用grep:->更有效)。
switch命令足够智能,可以根据需要跟踪每个远程分支。
VonC的解决方案可以通过改变sed进一步简化(我缺乏代表点直接评论他的帖子):
for branch in $(git branch -r | sed 's,[^/]*/,,g'); do git switch $branch; done
通过替换所有非斜杠直到最后一个斜杠的内容,剩余的分支名称适合本地使用;重复切换到同一个分支并不是错误(这可能效率较低,但可能比在管道中使用grep:->更有效)。
switch命令足够智能,可以根据需要跟踪每个远程分支。