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

延续Git-分阶段合併&压缩合併

目前只有一个分支
http://img2.58codes.com/2024/20112573w1GUUIE0vZ.png

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

我们可以这样想像,每个commit都是一个节点,指向特定的版本,而每个版本都有专属的Id。

接下来,可以使用版本Id,在特定版本,建立分支。
http://img2.58codes.com/2024/20112573PkjDpelPyY.png

建立一条分支(br3),并新增档案(e.txt),让它成为最新的版本。

再建立一条feature分支。

建立后的线图。
http://img2.58codes.com/2024/20112573h4FKrhOycd.png

从线图可以看出,br1与br2是已经合併的分支,br3则是未合併。

在master分支查看所有分支。
http://img2.58codes.com/2024/20112573VUxmUNSamG.png

加上--merged,可以查看所有已合併分支。
http://img2.58codes.com/2024/20112573ChFgOHVbCv.png
没有br3,因为刚刚只建立br3,并未将它合併。

注意,如果在br3查看所有已合併分支。
http://img2.58codes.com/2024/201125731xWXHP3z3e.png
会出现本身分支。
因为,不管有没有合併,预设会秀出自己的分支。

那是否能显示未合併的分支呢?答案是可以的。
将参数改成--no-merged 即可。
http://img2.58codes.com/2024/20112573o6mJlJO7S6.png

删除所有已合併的分支

来看看stackoverflow,别人提供的答案。

在绿色勾勾的回答,我们可以找到最佳答案。
http://img2.58codes.com/2024/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)。

执行。
http://img2.58codes.com/2024/20112573DyLIPP6iRh.png
讯息显示,删除了br1与br2分支。

确认。
http://img2.58codes.com/2024/20112573KBVnLeJaFo.png

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


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章