重命名几个git分支
我正在从另一个git提供商切换到GitHub。我把所有的树枝都拉到了我的地方重命名几个git分支,git,bash,Git,Bash,我正在从另一个git提供商切换到GitHub。我把所有的树枝都拉到了我的地方 for remote in `git branch -r`; do git branch --track $remote; done 但是我没有将分支命名为name,而是将它们命名为origin/name,所以现在我需要将它们重命名为name 你知道如何批量重命名它们吗?或者干脆用正确的名字把它们取出来也会有帮助。如果你有两个存储库 本地名为local 遥控器被称为origin 在本地主分支中,可以删除所有以“原点”
for remote in `git branch -r`; do git branch --track $remote; done
但是我没有将分支命名为name
,而是将它们命名为origin/name
,所以现在我需要将它们重命名为name
你知道如何批量重命名它们吗?或者干脆用正确的名字把它们取出来也会有帮助。如果你有两个存储库 本地名为
local
遥控器被称为origin
在本地主分支中,可以删除所有以“原点”开头的分支:
等等
那么
$ git fetch origin
将允许本地用户使用最新版本的origin。对于要从原点下拉的每个分支:
$ git checkout -b name_of_branch
$ git rebase origin/name_of_branch
这将在本地创建分支“name\u of_branch”,并将更改从源位置拉入该分支
您还需要确保“origin”中没有冲突的更改。如果有,发布问题,我们可以在单独的问题中讨论
for remote in `git branch -r`; do git branch --track $remote; done
远程跟踪分支通常以其远程名称作为第一个元素,因此git branch-r
向您展示了例如origin/master
,origin/release
等等。但是您自己的分支通常不使用前缀
远程跟踪分支origin/master
的完整拼写为refs/remotes/origin/master
,分支命令(以及任何其他采用未启动ref/
的分支和标记名称的命令)正在做的是通过使用方式推断您在追求什么
所以对于git分支——跟踪origin/master
您将其用作本地分支名称。你可能想要的是
for remote in `git branch -r`; do git branch --track ${remote#*/} $remote; done
${remote}*/}
中的\*/
是shell参数扩展功能的一部分,在任何shell文档中查找“参数扩展”,谷歌“man sh”并查找该部分。它将匹配模式*/
的最短前导字符串从扩展中剥离,因此它将在此处剥离origin/
。如果我没有在问题上使用“几个”这个词,这将起作用。祝你在近400家分支机构中成功
for remote in `git branch -r`; do git branch --track ${remote#*/} $remote; done