Git-重命名多个分支

Jus*_*dow 5 git bash

在这里,我们有一个git repo,它具有多个以相同前缀开头的分支,如下所示:

pfx.branchName1  
pfx.branchName2  
pfx.branchName3  
...
Run Code Online (Sandbox Code Playgroud)

因此,问题是如何从所有分支中快速删除所有前缀(“ pfx。”)并获得如下所示的内容:

branchName1  
branchName2  
branchName3  
... 
Run Code Online (Sandbox Code Playgroud)

Jus*_*dow 6

找到一个通用命令,该命令搜索包含我们想要的字符串(例如"StringToFind")的分支,并通过用我们想要的字符串(例如)替换该部分来重命名"ReplaceWith"

git branch | grep "StringToFind" | awk '{original=$1; sub("StringToFind","ReplaceWith"); print original, $1}' | xargs -n 2 git branch -m
Run Code Online (Sandbox Code Playgroud)

注意:在开始重命名之前,我们可以运行以下命令来查看要重命名的分支(为方便起见):

git branch | grep "StringToFind" | awk '{original=$1; sub("StringToFind","ReplaceWith"); print original, "->" , $1}'  
Run Code Online (Sandbox Code Playgroud)

因此,对于我们的情况,使用此命令删除前缀:

git branch | grep "pfx." | awk '{original=$1; sub("pfx.",""); print original, $1}' | xargs -n 2 git branch -m  
Run Code Online (Sandbox Code Playgroud)

并在删除之前进行检查:

git branch | grep "pfx." | awk '{original=$1; sub("pfx.",""); print original, "->", $1}'
Run Code Online (Sandbox Code Playgroud)