【发布时间】:2020-11-09 20:38:56
【问题描述】:
我有以下问题:
我有许多需要被压缩的提交(几千个,我们有一个失控的脚本)。这些提交在 40 到 200 之间分组。
使用git rebase -i 是不可行的,因为它会涉及太多的劳动力。
我们有一个工具,它可以从分支 HEAD 输出此类组的第一个和最后一个提交(可用于通过其引用哈希获取实际提交)。
作为一个例子,我正在寻找可以将 HEAD~400 压缩到 HEAD~200 的东西。然后可以再次运行(使用更改参数)以将 HEAD~100 压缩到 HEAD~50 到另一个单一提交中。
编辑 1:
我考虑过创建一个“假”编辑器,通过对变基文件执行更改,它本质上是伪造交互性的。一个抽象的示例脚本看起来像这样(我可以循环直到所有组都被压扁):
start=$('get start of oldest group')
end=$('get end of oldest group')
git config core.editor "'~/fakeeditor' -start $start -end $end"
git rebase -i
【问题讨论】:
-
只需重新布线祖先就是设置本地移植物并运行过滤器分支来烘烤它们。
-
你说你不想要
git rebase -i,而是一个自动压缩提交范围的命令。为什么不使用git rebase -i并构建一个可以自动标记该待办事项列表中的提交范围的命令? -
@NilsWerner 这是我已经建议使用那个“假编辑器”
标签: git git-rebase git-squash