工作的时候习惯每一个任务都创建一个分支,任务完结都会合并到主分支上,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。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/461132
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.