Git rebase保留最新提交日期
我一直在研究一个功能分支,它可以被推到远程。它有5个左右的提交,有些是非常快速的提交,不值得自己提交。我希望该功能在我将其推到remote进行审查之前总共提交一次 我通常会这样做: git rebase-i头~5 然后将提交折叠到上一个提交中。这将给我一个提交,因为我想但是,提交日期是第一次提交的日期。我想要一次提交,提交日期为最后一次提交Git rebase保留最新提交日期,git,Git,我一直在研究一个功能分支,它可以被推到远程。它有5个左右的提交,有些是非常快速的提交,不值得自己提交。我希望该功能在我将其推到remote进行审查之前总共提交一次 我通常会这样做: git rebase-i头~5 然后将提交折叠到上一个提交中。这将给我一个提交,因为我想但是,提交日期是第一次提交的日期。我想要一次提交,提交日期为最后一次提交 如何将提交折叠到最后一次提交而不是第一次提交?您可以在任何新提交上设置任意日期 当您将提交与rebase-i组合在一起时,实际上并不是在更改旧的提交,而是在
如何将提交折叠到最后一次提交而不是第一次提交?您可以在任何新提交上设置任意日期 当您将提交与
rebase-i
组合在一起时,实际上并不是在更改旧的提交,而是在进行一次新的提交,之后您只需停止使用旧的提交:
(before rebase -i)
A--B--C--D--E--F--G--H--I <-- master
(after rebase -i)
E--F--G--H--I [abandoned]
/
A--B--C--D--J <-- master
如果没有其他方法可以让您找到它们,那么您放弃的提交将最终(大约30天后的某个地方)丢失查找它们的最后方法。它们的ID将保留在reflogs中一段有效期,以防您想要它们回来,一旦它们真的未被引用,垃圾收集就会通过(由git gc--auto
运行,它又由其他各种git命令为您运行)将真正删除它们
1基于非交互式的
git-am
的git-rebase
有一个标志,但没有挤压功能。git-rebase-i SHA
重设基础后,有3个选项可用,请选择其中任何一个。选项1仅适用于最近提交。选项2和3不适用于交互式重设基础,因此需要单独的重设基础调用,否则将仅加入上述重设基础调用
(由此可知,)我可以想象他们为什么这么做。对于fixup提交,原始数据是正确的,您肯定希望保留原始作者。对于squashes,您希望保留的内容不太清楚。复杂的行为,如如果超过30%的代码来自第二次提交,则选择新日期,等等,不值得努力实现。
E--F--G--H--I [abandoned]
/
A--B--C--D--K <-- master
\
J [abandoned]