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

问题描述

我总是喜欢在本地 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,那么您就很好。

Here is the script code

,

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

不会丢失历史记录或数据,因为拉取请求使“分支”永远可访问。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...