从存储库历史中删除提交
可能重复:
如何删除'git commit'
知道这会改变历史,我想从存储库的历史中删除一些意外提交。 我希望所有其他提交都保留其存储库的状态。 因此,我想要删除的提交更改将由提交后的提交来覆盖。
我怎么能在Git中做到这一点,我怎样才能将它应用于Github上的存储库呢?
如果我理解正确,“挤压”就是你想要的。
-A-B-C-D-E-F-G-H
鉴于上述历史,您应该在第一次提交之前选择提交来压缩。 假设你想将F和E压缩到D和H中,所以第一个之前的提交是C.
git rebase -i C
您将看到一个带有文本文件的编辑器,其中包含如下内容:
pick D
pick E
pick F
pick G
pick H
修改为:
pick D
squash E
squash F
pick G
squash H
您将被要求查看新提交的提交消息,
结果历史将如下所示:
-A-B-C-D'-G'
请注意你总是将更新的提交压缩成更旧的提交,而不是相反。 因此, pick G
和squash H
把它看作是在你的历史继续之后修改一个提交。
PS:为了让你的GitHub仓库得到这个,你必须强制推git push -f origin
(因为这个origin
是你的GitHub远程)。
PPS:有关更多信息,请参阅git-rebase的手册页。
链接地址: http://www.djcxy.com/p/8999.html