【发布时间】:2021-10-28 11:04:48
【问题描述】:
我们可以压缩Git 中的最后 N 个提交。据我了解,我们可以使用 git rebase -i HEAD~N 或 git reset --soft HEAD~N 压缩最后 N 次提交。
在此问题 (Squash my last X commits together using Git) 的答案中,最受好评的答案建议使用 git reset --soft HEAD~N,这不是公认的答案。接受的答案推荐git rebase -i HEAD~N。因此,我很困惑,更喜欢使用哪一个。
这些方法有何不同?推荐或安全使用哪一种?
【问题讨论】:
-
rebase is 命令更漂亮、更强大,因此需要更多的工作(通过计算机)。 reset-and-commit 命令要简单得多,功能也少得多,因此更容易(对于计算机而言)。如果您所做的只是压扁所有内容,则最终结果是相同的,因此请使用 您 发现更容易的任何一个 - 或者,如果您的计算机速度非常慢,请使用重置并提交方法所以它需要几秒钟而不是30分钟。我发现对于很多提交,rebase 对我来说也更难,因为我必须将很多行从
pick更改为s。 -
当然,如果你想要或者需要rebase的任何额外capabilities,使用rebase。
标签: git git-rebase git-reset git-squash