我在做什么:如何清理git历史记录删除某些提交后被推送?
我完成了一项功能。
git add -A; git commit -m "feature A complete"
然后我意识到我错过了一些东西。
git add -A; git commit -m "feature A missed something 1"
git add -A; git commit -m "feature A missed something 2"
git add -A; git commit -m "feature A missed something 3"
现在我的历史是这样的:
A238ad1 feature A missed something 3
3238adX feature A missed something 2
1238ad7 feature A missed something 1
111AAA2 feature A complete
我希望它看起来像这样:
111AAA2 feature A complete
与所有的missed something
的提交合并为feature A complete
提交。
我知道git rebase -i HEAD~4
是正确的路要走,但它并没有真正删除坏的提交清理历史。
我注意到在其他一些文章中有一个git commit --fixup
命令和一个git rebase -i --autosquash
,但我没有得到它正常工作。我相信这很容易,我今天刚出来。
他们不会删除任何内容的原因可能是您在交互式重新绑定期间未指定如何处理这些提交。你必须改变'pick',这是'squash'的默认值。通过这种方式,它将压扁提交对方,您将有机会在最后编辑提交 –