我在做什麼:如何清理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'的默認值。通過這種方式,它將壓扁提交對方,您將有機會在最後編輯提交 –