在Git中压缩分支中的所有提交

3

假设我在主分支的最后一次提交之后,在功能分支上有多个提交。

... - last_commit_in_master - C1 - C2 - .. - C100

现在我想将所有这些提交合并为一个。
我知道一种解决方案:
  • git rebase -i master
  • 除第一个以外的所有选项都替换为pick。嘿,vim中有2,s/pick/squash/。 <-- 这是我不想每次执行的步骤
  • 选择新的提交名称。
是否有更简单的方法?
2个回答

1

不要使用 squash,除了第一个之外,将每个都替换为 fixup,这样您就不必选择新的提交名称,它只会将它们全部放在同一个提交中。


好吧,回顾旧的提交并选择一个新名称并不那么糟糕。 - RiaD

1
如果您将所有提交合并为一个,并且想要最后一次提交的提交消息和时间。
git reset --soft $(git merge-base HEAD master)
git commit -c ORIG_HEAD

如果您想微调消息,这将让您重新编辑它。

这不会进行变基。请在单独的步骤中执行此操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接