2

我的主题分支在我分支之前大约有 20 个提交。

我想自动将所有这些提交压缩到分支之后的第一个提交中。

我知道我可以使用 rebase 交互地执行此操作,但我不想交互,只需触发命令即可。

4

2 回答 2

4

你可以这样做:

git reset --soft HEAD~20
git commit -m "massive commit"
  • 第一个命令将您的主题分支移回 20 次提交,但保留索引(和工作树)中的更改
  • 然后,您创建一个包含所有更改的提交。

找到要重置的确切提交的一种快速方法是

git merge-base <topicbranch> <otherbranch>

如果那个输出是<commit-ish>,那么你可以做

git reset --soft <commit-ish>
于 2013-05-24T16:55:49.157 回答
0

为什么不直接检查您的原始分支,并且git merge --squash <other branch>

然后,git commit您将有机会编辑合并的提交消息。

于 2013-05-24T17:05:47.090 回答