簡體   English   中英

Git - 重命名多個分支

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM