我有兩個提交在同一分支,一個接一個。我將文件A的更改添加到第一次提交中,然後對其他文件進行了一些更改,然後再進行了一次提交。現在我希望文件A的更改在第二次提交而不是第一次提交。什麼是最優雅的方式?我應該如何將更改從一個提交移動到另一個提交?
6
A
回答
6
如果他們是小提交,並承諾應始終小混帳,最簡單的辦法就是git reset HEAD^^
,然後就再次做他們。請注意,任何解決方案都涉及重寫歷史記錄,如果您已經在某處推送了這些提交,那麼除非您知道自己在做什麼,否則不應該這樣做。
+2
「和提交應該總是小git」 當然... – Betamos 2017-11-03 02:24:21
0
漂亮的參與答案,但基本上你壁球和重建。
0
在剛剛創建這些提交的事件中,撤消第二次提交git reset HEAD^
,然後將更改添加到第一次提交git commit --amend
。
在更有可能發生的事件中,您已經提交併且提交過去的某個時間點,重新分配是您的最佳選擇。如果不知道確切的情況,引用一個可以解釋它的參考文獻可能是最好的。
在第一個和第二個事件中,Pro Git書籍關於重寫歷史的部分都很好地解釋了這些選項 - 無論是何時應該使用它們,以及何時應該謹慎使用。
3
0
另一種解決這個問題
- 找到剛纔的兩次提交(可能這是master分支) 之前提交
- 運行
git rebase -i <commit before commits to be reordered>
(大多數情況下爲git rebase -i master
) - 在文本編輯器中,交換提交的順序(對於vim,請使用sequ ENCE
ddp
而上線應該下移) - 保存,退出,並讓git的底墊做休息
相關問題
- 1. 將提交從一個分支移動到另一個分支
- 2. 從Git提交一些更改到一個單獨的提交
- 3. 如何將所有提交從一個分支移動到另一個分支?
- 4. 如何將提交移動到另一個分支?
- 5. Git:將提交從主控移動到另一個分支
- 6. 當一個提交包含來自另一個提交的更改時,我該如何合併?
- 7. Subversion將未提交的更改提交到一個新分支
- 8. 將下一個提交的更改合併到當前提交
- 9. 將多個提交從一個分支移動到另一個分支?
- 10. 從一個分支移動到另一個沒有提交修改
- 11. git合併重新提交提交到另一個提交?
- 12. 是否可以輕鬆地將所有提交從一個分支移動到另一個提交?
- 13. 通過點擊提交按鈕將值從一個jsp移動到另一個
- 14. Android Studio Git將提交的更改移動到另一個分支
- 15. git將來自一個提交的更改應用到另一個分支
- 16. Git:從另一個提交一些提交啓動一個新項目
- 17. 如何將已提交但未修改的更改移至另一個分支?
- 18. Git:將特定提交移動到另一個分支
- 19. 將表單提交到另一個域
- 20. 移動未提交更改到一個新的分支
- 21. 從一個rails應用程序提交數據到另一個
- 22. 櫻桃採摘從另一個分支提交幾個提交
- 23. 我該如何保存一個被壓縮到另一個的提交時間?
- 24. Squash提交到一個提交
- 25. 如何將一系列提交添加到另一個分支?
- 26. 如何在另一個表單中提交表單值提交
- 27. Git:將提交的一部分應用到另一個分支
- 28. 如何在git中將舊提交移動到另一個分支?
- 29. 如何將分支(或指定的提交)移動到另一個分支?
- 30. 如何將提交移動到另一個分支的主模塊
你可以檢查git的變基[這裏](https://git-scm.com/docs/git-rebase#_splitting_commits) – rumman0786 2017-04-21 16:15:14
這個問題是「擠壓我最後一個X使用Git一起提交」的特例https://stackoverflow.com/questions/5189560/squash-my-last-x-commits-together-using - git – 2017-05-24 20:41:03