压缩和重新组织提交记录

5

我看过很多关于使用git commit --amend或rebase来压缩提交的博客文章。

我发现使用git reset到上一个检查点(例如在所有“保存点”微提交之前)然后使用交互式添加来选择最佳提交顺序更容易些。

这种方法有什么不好的地方吗?
我想知道,因为我读的大多数博客都使用amend或rebase来进行此操作。

2个回答

6
缺点是你需要重新挑选所有单独的文件,以便再次将它们分组为提交。
如果您的提交需要被分组在一起(而无需添加或删除这些提交中的文件),那么交互式变基更容易:您可以按照已提交的文件集进行推理。
实际上,通过正确的提交注释,rebase --interactive --autosquash 可以为您重新排序。
如果您的提交仅是中间保存点,则您的解决方案是适当的。

谢谢 Von!我看过你的其他答案,它们都很棒,指导得非常到位。 - ambertch

3

除了VonC的回答之外,还要看你有多少次提交。

我最常遇到的情况是这样的:

  • 在A上工作,提交
  • 在B上工作,提交
  • 哦不!我在A中错过了一些重要的东西,为A提交更正

通过交互式变基,重新排序并将更正内容合并到A的原始提交中非常容易。

另一个例子是当我只想改写提交信息时。

还有一个例子是当我遇到这种情况时:

A-------------------master
 \
  B-----C-----D-----branch

我希望将C和D合并到主分支中,但是不想将B合并。我可以使用rebase来重新排序我的分支提交顺序为C、D、B,然后git checkout mastergit merge D


在我重新排序提交后,如何执行您最后一个示例的最后一步?将 B(现在是最后一个提交)存储起来,然后 git 合并分支? - ambertch
@ambertch,不,只需要执行 git merge D 即可。 - Benjol

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