[英]Git - Rename multiple branches
這里我們有一個 git repo,它有多個以相同前綴開頭的分支,就像這樣:
pfx.branchName1
pfx.branchName2
pfx.branchName3
...
所以問題是如何從所有分支中快速刪除所有前綴(“pfx.”)並得到如下內容:
branchName1
branchName2
branchName3
...
找到了一個通用命令,它搜索包含我們想要的字符串(例如"StringToFind"
)並通過用我們想要的字符串替換該部分(例如"ReplaceWith"
)來重命名的分支:
git branch | grep "StringToFind" | awk '{original=$1; sub("StringToFind","ReplaceWith"); print original, $1}' | xargs -n 2 git branch -m
注意:在開始重命名之前,我們可以運行這個命令來查看哪些分支將被重命名(只是為了方便):
git branch | grep "StringToFind" | awk '{original=$1; sub("StringToFind","ReplaceWith"); print original, "->" , $1}'
因此,對於我們的案例,使用它來刪除前綴:
git branch | grep "pfx." | awk '{original=$1; sub("pfx.",""); print original, $1}' | xargs -n 2 git branch -m
這,用於在刪除前檢查:
git branch | grep "pfx." | awk '{original=$1; sub("pfx.",""); print original, "->", $1}'
您可以從git branch
的輸出中過濾分支名稱,然后使用帶有替換的 Bash 循環來執行重命名:
git branch | sed -e 's/..//' | grep '^pfx\.' | while read b; do git branch -m "$b" "${b#pfx.}"; done
或者稍微更緊湊但可能更難閱讀:
git branch | sed -ne 's/^..pfx\.//p' | while read b; do git branch -m "pfx.$b" "$b"; done
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.