iT邦幫忙

0

Git- 一次刪除全部已合併的分支

git
WM 2019-05-14 17:26:30366 瀏覽

延續Git-分階段合併&壓縮合併

目前只有一個分支
https://ithelp.ithome.com.tw/upload/images/20190514/20112573w1GUUIE0vZ.png

顯示已合併or未合併的分支

我們可以這樣想像,每個commit都是一個節點,指向特定的版本,而每個版本都有專屬的Id。

接下來,可以使用版本Id,在特定版本,建立分支。
https://ithelp.ithome.com.tw/upload/images/20190514/20112573PkjDpelPyY.png

建立一條分支(br3),並新增檔案(e.txt),讓它成為最新的版本。

再建立一條feature分支。

建立後的線圖。
https://ithelp.ithome.com.tw/upload/images/20190514/20112573h4FKrhOycd.png

從線圖可以看出,br1與br2是已經合併的分支,br3則是未合併。

在master分支查看所有分支。
https://ithelp.ithome.com.tw/upload/images/20190514/20112573VUxmUNSamG.png

加上--merged,可以查看所有已合併分支。
https://ithelp.ithome.com.tw/upload/images/20190514/20112573ChFgOHVbCv.png
沒有br3,因為剛剛只建立br3,並未將它合併。

注意,如果在br3查看所有已合併分支。
https://ithelp.ithome.com.tw/upload/images/20190514/201125731xWXHP3z3e.png
會出現本身分支。
因為,不管有沒有合併,預設會秀出自己的分支。

那是否能顯示未合併的分支呢?答案是可以的。
將參數改成--no-merged 即可。
https://ithelp.ithome.com.tw/upload/images/20190514/20112573o6mJlJO7S6.png

刪除所有已合併的分支

來看看stackoverflow,別人提供的答案。

在綠色勾勾的回答,我們可以找到最佳答案。
https://ithelp.ithome.com.tw/upload/images/20190514/20112573e5oN8X2Pgt.png

指令git branch --merged | egrep -v "(^*|master|dev)" | xargs git branch -d

這裡,我們要修改的是篩選條件(^*|master|dev),其他都是固定的。

篩選條件是,除了現在的分支(*)、master跟dev之外,其他以合併的分支一律刪除。

注意,若在windows環境,只有Git Bash能執行這段程式碼,因為只有Git Bash有支援egrep與xargs的功能。

在執行之前,修改一下篩選條件,(^*|master|feature)。

執行。
https://ithelp.ithome.com.tw/upload/images/20190514/20112573DyLIPP6iRh.png
訊息顯示,刪除了br1與br2分支。

確認。
https://ithelp.ithome.com.tw/upload/images/20190514/20112573KBVnLeJaFo.png

以上,就是一次將所有已合併的分支刪除的方式。


尚未有邦友留言

立即登入留言