git刪除本地分支和遠程分支


今天准備找以前的一個分支,發現自己本地的分支已經很多了,決定清除一下,然后這里記錄一下批量刪除分支的命令,免得后面又忘。

說批量之前先說單個的。

刪除本地的單個分支

git branch -d [分支名]

刪除遠程的單個分支

git push origin :[分支名]

或者

git push origin -d [分支名]

批量刪除本地分支

git branch -a | grep 'lyn_' | xargs git branch -D

解釋一下:git branch -a(--all)表示列出本地所有分支,grep ‘lyn_’表示正則匹配本地所有分支中分支名有'lyn_'扥分支,然后將以上匹配結果作為參數傳給git branch -D,執行刪除本地分支命令,‘|’相當於一個管道符,將上一段的結果傳給下一段

有時候分支命名上沒什么規則,只想保留某幾個正在開發中的分支,刪除所有其他的分支,就可以用下面命令:

git branch -a | grep -v -E 'A|B' | xargs git branch -D

上述命令表示刪除除了A和B分支外的所有本地分支

批量刪除遠程分支

git branch -r| grep 'lyn_' | sed 's/origin\///g' | xargs -I {} git push origin :{}

git branch -r表示列出所有遠程分支,匹配含有lyn_的分支,sed 's/origin\///g'能夠把接受到的分支都過濾掉開頭的origin/得到實際的分支名 (大概這個意思),比如origin/A分支執行了 sed 's/origin\///g'命令就能得到A  ,然后將A這個分支作為參數傳給下一個命令,-I {} 使用占位符 來構造 后面的命令,也就是接收到了上個命令的執行結果A執行git push origin :A

 順便補充一下本地分支與遠程分支的關聯與取消:

1.取消本地目錄下關聯的遠程庫

git remote remove origin

2.將本地目錄與遠程關聯

git remote add origin git@github.com:git_username/repository_name.git

如果將本地目錄與遠程關聯后,遠程目錄包含本地目錄沒有的內容的時候,git pull會出現如下報錯:

fatal: refusing to merge unrelated histories

可以用以下命令來忽略(要解決沖突)

git pull origin master --allow-unrelated-histories

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM