我已經在本地做了2個'git commit'。但我沒有推,我可以編輯我的git並將這兩個git commit合併爲1嗎?我該如何結合2'git commit的
5
A
回答
11
是的,它是可能的:
你必須先找到犯下這是你要使用的那些前。試想一下,我們想最後兩次提交合並:
git rebase -i HEAD~3
這將啓動互動底墊的編輯器,是給你的可能性進行提交的所謂的擠壓,它會名單的提交來自一個是三種起動提交前。
請閱讀編輯器窗口中的幫助信息,瞭解如何使用交互式底座。 爲了取消rebase操作,你必須刪除文件中的所有行並保存! 你也不要觸摸提交ID和描述 - 你只需在提交ID從「pick」到「s」之前更改命令(壁球)
另一件事是你絕對正確地提到你沒有推動。首先也是唯一一條git規則是「不重寫已發佈的歷史記錄」。即您不需要重新組織,重新排序或刪除已經推入公共訪問的提交。 對於所有情況都是如此,除非您是唯一一個在該項目上工作的人。
4
如果您已提交併想要添加一些更改,則可以使用git commit --amend
這將修改上次提交。如果要做到這一點,而無需通過git的基礎重建的所有的麻煩去,然後:
git checkout --soft HEAD~
這將刪除最後一個承諾,而刪除更改,然後
git commit --amend -C HEAD
將修改最新犯了指數中的新變化。 -C HEAD
標誌採用來自頭提交的提交消息,因此您甚至不需要再次添加該消息。
1
有上擠壓這裏另一個偉大的文章:http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html
的[?我如何能夠壓制我的最後X犯一起使用Git(相關問題
- 1. 我該如何完成git commit?
- 2. 我該如何修復恢復的git commit?
- 3. 我該如何回到以前的Git Commit?
- 4. 我應該結合ICollectionView或的ObservableCollection
- 5. 我該如何結合2個預先寫好的Javascript函數
- 6. Commit Vs合併
- 7. ASP.NET MVC,Querystring,路由和默認綁定,我該如何結合?
- 8. 我該如何結合這些.htaccess命令?
- 9. 我該如何等待JavaScript的結果?
- 10. 我該如何整合phpunit和Hudson CI?
- 11. 我該如何整合CalDAV和CardDAV
- 12. 我該如何組合Zend_Session和Zend_Oauth
- 13. 我該如何整合Unity APP和Ionic
- 14. 如何阻止我使用'git commit -a'?
- 15. 我該如何做結構化記錄?
- 16. 我該如何解決合併衝突git
- 17. 我該如何結合循環中創建的一系列sass類
- 18. 我應該如何結合使用CakePHP的靜態+非靜態內容
- 19. 我該怎麼做gitk的「Write commit to file」?
- 20. 如何結合
- 21. 如何結合
- 22. 如何結合
- 23. Git commit然後結賬
- 24. iOS AppExtension:我如何結合NSExtensionActivationRule和NSPredicate
- 25. 我如何結合Excel表格
- 26. 我如何結合兩個Android項目
- 27. 我如何結合和條件?
- 28. 我如何結合webdriver定位器?
- 29. 我如何結合Guice和Mapstruct?
- 30. 我如何結合這2個查詢?
可能重複http://stackoverflow.com/questions/5189560/how-can -i-squash-my-last-x-commits-together-using-git) – 2011-03-29 08:31:00
在那裏你可以找到一個很好的答案:http://stackoverflow.com/questions/2563632/how-can-i-merge-two -commits-into-one – 2013-10-13 12:21:54
可能的重複[如何將兩個提交合併爲一個?](https://stackoverflow.com/questions/2563632/how-can-i-merge-two-commits-into-one) – 2017-07-05 20:38:15