清理废弃分支

2018-06-07 11:20:48 +08:00
 libook
工作的时候习惯每一个任务都创建一个分支,任务完结都会合并到主分支上,GitHub 的 Pull Request 机制提供了 merge 后删除分支的功能,久而久之本地就会多了很多废弃的分支,有时候会搞错名称相近的分支,于是突发奇想写了一个脚本用来清理这些分支。基本上就只保留了有效跟踪远程分支的本地分支,其他一律删除。

注意:请确保有效代码都已推送到远程!
注意:请确保有效代码都已推送到远程!
注意:请确保有效代码都已推送到远程!

https://gist.github.com/libook/610b9b53bc5b4b972644edd56e624bbc

依赖 Z Shell 环境,主要由于 read 指令的使用方法不同。

代码可用,只不过缺乏优雅,后续有空还会做优化,比如代码重用和多种情况的统一处理方案。

另外脚本中用了 git branch 的-d 参数而不是-D 参数:
-d, --delete delete fully merged branch
-D delete branch (even if not merged)
所以使用脚本的时候会发现有一些没有 Merge 到其他分支的分支无法删除,这算是一个安全机制吧,确认确实可以删除可以使用 git branch -D 指令手动删除一下,或者心大的话直接把脚本里的参数改成-D。
3108 次点击
所在节点    git
3 条回复
mcfog
2018-06-07 12:47:10 +08:00
所以这是重新发明了 git fetch -p 么?
akillcool
2018-06-07 13:07:44 +08:00
git remote prune origin
libook
2018-06-07 19:53:23 +08:00
@mcfog
@akillcool
你可以试一试,功能不大一样。脚本里也用了你们说的指令,但还有代码用来处理其他情况。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/461132

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX