我遇到了問題。我已經完成了對master的幾次提交。但我犯了一個錯誤。我需要在branch_a上進行這些提交。我如何取消master上的提交併將它們移動到branch_a。如何取消對提交的提交併將其移動到分支
2
A
回答
2
假設沒有其他人已經看到你的變化,掌握和建立在它們之上的東西:
git checkout branch_a
git cherry-pick <commit sha> # for each commit you want on branch a
git checkout master
git reset <commit sha you want to move master back to>
如果有人有您意外高手頂部已建成的東西提交,那麼你會想要git revert
而不是使用reset
。
2
如果你只是有幾個提交,然後櫻桃採摘它們可能是最簡單的選擇。您可以通過git log master
找到提交的哈希值。然後執行以下操作。
git checkout branch_a
git cherry-pick COMMIT_HASH_1
git cherry-pick COMMIT_HASH_2
...
git checkout master
git reset --hard COMMIT_HASH_BEFORE
所有COMMIT_HASH_#
你想移動到branch_a
和COMMIT_HASH_BEFORE
的提交是從你的錯誤提交之前提交哈希值。 (請注意,這會丟棄工作目錄中的任何未提交的更改。)
請注意,如果您已將更改推送到master
,並且其他人可能已使用此分支,則您將改爲git revert
同樣承諾你櫻桃採摘,否則你會爲在分支上工作的其他人造成問題。 (恢復只是創建一個新的提交,撤消了以前的提交。)
1
最好的事情是重置主分支,但保持您的更改。使用櫻桃挑選會用新的提交來玷污回購。假設你已經兩次提交:
git checkout master
git reset --soft HEAD~2
git checkout branch_a
git commit -m "foo"
與--soft重置意味着你的更改將保持上演,它將把混帳的狀態,因爲它看起來你做的提交之前,所以你只需要切換分支並重新提交您的更改。
相關問題
- 1. 如何撤消提交併將更改提交到Git中的其他分支?
- 2. 如何將所有提交從特定提交移動到新分支
- 3. git - 將分支「標記」移動到其他提交?
- 4. 將提交從一個分支移動到另一個分支
- 5. 如何將提交移動到另一個分支?
- 6. 切換分支以及移動已提交但未提交的提交
- 7. 如何將分支(或指定的提交)移動到另一個分支?
- 8. 將提交消息從分支轉移到主設備
- 9. 如何從合併分支移動提交?
- 10. 如何將所有提交從一個分支移動到另一個分支?
- 11. 混帳:如何某些提交移動到新的分支
- 12. 如何將自動分割提交到不同的分支?
- 13. Subversion將未提交的更改提交到一個新分支
- 14. 將最近一次提交的提交消息更新到本地分支
- 15. 取消合併分支,保留合併後提交
- 16. git:合併兩個分支並提交提交
- 17. 如何將提交與分支關聯
- 18. 什麼產生提交消息,如:合併分支'主'...到'主'
- 19. 從主分支中提取其他提交後,Git壓縮提交
- 20. 合併後獲取功能分支的提交消息
- 21. svn分支提交 - 實驗提交
- 22. Git/source樹將分支B的特定提交移動到分支A
- 23. 合併大的git提交,將它分成主分支上的小提交
- 24. 如何從提交ID找到分支
- 25. 查看分支上創建的提交,隱藏合併提交
- 26. 移動合併提交回舊分支,恢復主分支並保持更改
- 27. 將多個提交從一個分支移動到另一個分支?
- 28. 如何在Git中的分支之間移動提交?
- 29. 使用jQuery提交取消提交
- 30. 在分支上獲取一系列提交的提交
branch_a是否已經存在?在master上是否有不在branch_a上的不想移動到branch_a的提交? branch_a是否提交了那個主控程序沒有的提交? – 2012-03-12 01:53:50
啊,內臟;這可能有助於http://stackoverflow.com/questions/927358/git-undo-last-commit,如果我將是你我會恢復這些變化,然後重做我的功能分支(在你的情況下可能branch_a)並提交變化,希望這有助於,歡呼 – 2012-03-12 01:54:58
Tats_innit似乎有權利。你想做一個'git revert'和'git cherry-pick'的組合。 – Borealid 2012-03-12 01:56:04