假設我在每天結束時提交我的代碼。大部分這些提交都是垃圾,我正在保存代碼,但大部分時間我都檢查了不完整的代碼,無法正常工作。一旦我完成了這個功能,我不希望那些日誌中的提交失敗。我想做一個最終的提交,但不保留每日提交的歷史記錄。這可能嗎?有沒有辦法將幾個git提交合併爲一個提交?
回答
您可以通過命令git commit --amend
執行工作。
簡單地說,像往常一樣進行第一次提交。 然後通過命令git add <your stuff>
打包下一次提交的內容。最後,不要使用通常的提交,請使用上面提到的那個。
有關更多詳細信息,請參閱here。
如果要合併結帳所有本地提交做到這一點:
//this will revert your commits but will keep your changes
git revert ...
//and then normally
git commit -m 'New feature'
git push
相信這是可能的。什麼你要找的是sqashing
,可以使用git rebase
時,您只需選擇要合併(他們必須是後續)的提交和詢問混帳交互式衍合
期間壁球他們是做。總的來說,git稱之爲「擠壓」,並且有很多方法可以做到。我建議作爲該過程的介紹的方法是使用交互式底座。
如果您正在使用「上游」(您推送的存儲庫,或以其他方式提取您發佈的提交),您通常會將其設置爲分支的上游。然後git rebase -i
將爲您設置。如果不是的話,你仍然運行git rebase -i
,你只需要再添加一件事情,即哪些提交交互重新綁定。例如,在這種情況下,您可以使用git rebase -i HEAD~4
來處理最後四次提交。
你將要做的不是實際上重定位 - 你不會將提交鏈從一個起點移動到另一個起點 - 但git rebase
仍然是機制。在做一個互動的底墊中,你會得到提交列表:
pick 1234567 commit message
pick 2345678 another commit message
Git的打開了這個名單,然後你就可以,只要你喜歡調整自己喜愛的編輯器,然後git的企圖在重新申請的提交列出的新訂單,以及您對pick
行進行的更改。
改變從pick
到squash
原因是承諾要與以前的(線以上)提交摺疊在一起,在這一點混帳再次打開編輯器在提交信息一條線,這樣就可以修改消息的新的(單一)提交將兩個現有提交壓縮在一起。
您還可以更改提交順序或省略提交。
請注意,分離提交(儘管可以完成)要困難得多,所以請確保在執行操作之前確實想要將其中的一些壓扁。
(什麼rebase過程確實是副本每次提交,最後提交正在進行一次任何額外的南瓜或鏈接地址插入。您的原始提交的鏈仍然在資源庫中,你可以找到他們請注意,因爲它確實提供了複製提交,所以您通常應該複製並修改您尚未發佈的提交,因爲沒有其他人擁有未發佈的工作,所以他們將永遠不會獲得看到新舊版本的工作感到困惑。)
- 1. git - 將一系列提交合併爲一個提交
- 2. 合併幾個提交。 Git的變基
- 3. git合併重新提交提交到另一個提交?
- 4. git顯示前幾個提交回合併基的提交
- 5. git撤消合併提交另一個合併提交
- 6. 沒有自動提交的git合併
- 7. 使用libgit2將所有提交合併爲一個提交的方法
- 8. 有沒有辦法將提交歷史從SVN倉庫合併到Git分支?
- 9. 有沒有辦法壓縮已提交的合併請求中的提交?
- 10. Git將多個提交集羣集合成一個提交
- 11. Git:只合並一個提交
- 12. git:合併兩個分支並提交提交
- 13. 如何將提交與git interactive rebase中的下一個提交合並?
- 14. 爲什麼git提示我提交後合併提交消息?
- 15. 將git提交轉換爲一個
- 16. 將本地Git提交到git-svn的一個提交中
- 17. Git Squash按作者 - 所有作者提交到一個提交
- 18. Git - 有沒有辦法查看作者提交的行數?
- 19. 有沒有辦法在TortoiseSVN/subversion中提交一定數量的提交信息?
- 20. 的Git合併提交
- 21. Git合併提交丟失
- 22. Git合併跳過提交
- 23. 取消幾次提交只有一個在git
- 24. 有沒有辦法阻止用這個javascript/jquery提交表單?
- 25. 有沒有辦法在`git rebase -i`(交互式)中列出提交的作者?
- 26. 有沒有辦法將兩個LINQ查詢合併爲一個?
- 27. 有沒有辦法將兩個gcov文件合併爲一個
- 28. 有沒有辦法將這3個查詢合併爲一個
- 29. 是否可以在git中一次一個地提交提交,而不是同時提交所有提交?
- 30. 將迄今爲止所有的git提交轉換爲單個提交併清除所有歷史記錄
爲什麼downvote? –
[Squash我最後一個X使用Git一起提交]可能的重複(http://stackoverflow.com/questions/5189560/squash-my-last-x-commits-together-using-git) –