我犯了兩次錯誤。如何恢復兩次提交併只提交好東西?如何恢復兩次提交併只提交好東西?
回答
你可以做一個git rebase -i HEAD~2
,然後使用該接口放棄自那時起就存在的「壞提交」並清理你的歷史。然而,這改變了項目的歷史,如果你已經推動(和其他人)你的改變,那麼就有一些社會問題需要解決。
其他選項是git revert
這些更改。然後將2個新的提交添加到歷史記錄中,這使得您不希望在項目歷史記錄中明確指出這兩個提交。不太乾淨,但更容易處理。
我的同事們會抱怨說,糟糕的承諾曾經在那裏開始。在嘗試合併分支之前最好擺脫它。感謝您提供'git rebase -i'答案,而不只是說「你不是真的想這麼做!」像許多人一樣! –
在這種情況下,另一個有用的命令是'git push --force',以防你已經推送了錯誤提交。 –
'--force'選項具有破壞性。如果其他人對你的提交進行了修改並將它們推送到版本庫,那麼你的強制推進將會破壞所有的提交。 –
首先,git reset HEAD~2
放棄前兩個提交,同時讓您的工作樹完全按照原樣。然後,只需用你想要的創建一個新的提交(例如,用git add
,然後用git commit
)。
請參閱Reset Demystified作者:Scott Chacon瞭解經常易混淆的git reset
comamnd的詳細信息。
我只會這樣做是隻提交本地,如果他們是公開的我會使用最後2次提交 – ryanzec
是的,我假設OP沒有推動任何地方的不正確提交。 –
- 1. GIT:恢復上次提交?
- 2. Git:如何通過一次提交恢復一系列提交
- 3. 如何恢復SVN提交?
- 4. 如何合併已恢復的提交?
- 5. git恢復已提交的提交
- 6. 恢復git提交
- 7. 如何作爲單次提交的一部分恢復多次提交
- 8. 恢復git中的多次提交
- 9. Git恢復提交併添加更改,即使在提交更多提交後
- 10. 告訴Git提交是否合併/恢復提交
- 11. 表格不提交任何東西
- 12. 提交表單,如果行動==東西
- 13. 如何恢復在github web界面上提交的提交
- 14. Subversion合併提交和前次提交
- 15. Git合併主無需恢復提交
- 16. 合併時排除恢復提交
- 17. Wicket - 呈現之前提交的東西提交
- 18. 如何在同一個提交的rebase之後恢復合併提交?
- 19. 恢復git回購倒數第二次提交,同時拋棄上次提交
- 20. GitHub:恢復舊提交
- 21. Git恢復本地提交
- 22. Git:恢復舊的提交
- 23. 恢復到本地提交?
- 24. 如何讓Mercurial再次提交提交?
- 25. 如何恢復到早期提交
- 26. 如何恢復本地提交git
- 27. 如何恢復錯過的提交?
- 28. Git + Intellij - 如何恢復本地提交?
- 29. 如何恢復從git提交更改?
- 30. Git如何恢復舊提交
什麼是好東西?你能否更詳細地描述你的歷史現在看起來如何,你想如何看待? – svick
如果得到正確的答案(好東西?),稍微詳細一點會有所幫助。 – ryanzec
在您提交其他所有內容之前刪除所有不良內容。 –