如何自动清理合并压扁的分支



我总是更喜欢在本地rebase -i我的更改,并为我的功能分支留下一个非常干净和有用的提交历史。这还有一个好处,即在本地/远程分支合并到主分支(或主分支(后,可以使用branch -d对它们进行完全置信度的修剪。

例如,在合并一个分支而不压缩它之后,我使用以下别名/宏:

# ~/.gitconfig file snippet
[alias]
cleanmerged = "!git branch --merged | grep -v '*' | xargs -n 1 git branch -d"

但是,在处理团队只是YOLO他们的提交,然后要求通过在github上强制执行来压缩合并难看的混乱的项目时,我不知道如何自信地清理本地分支,所以我最终只留下了周围的一切,这使得以后的清理更加不确定,因为这取决于内存。

有什么办法解决这个问题吗?有任何咒语可以检查被压扁的树枝是否已经自信地出现在主(或主(中?

我为此编写了一个自定义ruby脚本,我已经使用了好几年了。总有一天我会把它作为红宝石宝石发布。我将自定义ruby脚本保存在类似~/dev/ruby的文件夹中

然后在shell配置文件中添加一个别名,如alias git-clean-branches="ruby ~/dev/ruby/git_clean_branches.rb"

或者,您可以在没有.rb的情况下重命名它,并使其可执行

chmod +x git_clean_branches

并将其符号链接为

ln -s ~/dev/ruby/git_clean_branches /usr/local/bin/git_clean_branches

如果你的$PATH变量加载了usr/local/bin,那么你就很好了。

这是的脚本代码

在南瓜合并到main/master之后,只需继续删除所有三个分支:本地分支、远程跟踪分支和服务器上的分支。

没有历史或数据的丢失;分支";永远可达。

最新更新