我在我的主分支的孩子中有一些不需要的git提交。我對一個功能分支進行了重新綁定,併成功合併了導致產生的一些衝突,但是我沒有意識到,重新分配不會讓我在功能分支上。如果我現在檢查一下功能分支,它大概會覆蓋我在工作樹中所做的更改,使它們處於某種程度的不穩定狀態。我可以「git checkout -m」,但這顯然只用於合併未提交的本地更改。我如何才能進入功能分支,並保留我目前在主分支下的未經承諾但已承諾的更改(無需將它們推送到主分支)?我應該使用git rebase - 去嗎?如果是這樣,我現在應該做些什麼,我已經重新啓動了-onto?如何將已提交但未修改的更改移至另一個分支?
回答
你可以這樣說:
git checkout branch
簽出特性分支。git reset --hard master
現在將分支移動到與master
相同的提交。通過這樣做,您將失去分支中的所有提交。由於你的基金會,所有這些承諾應該有master
副本,所以你不應該失去任何東西。git checkout master
結帳master
。git reset --hard origin/master
將master
重置爲origin
回購的狀態。這假定您沒有對master
進行任何改動。如果是這樣,請用您要重置爲的提交ID替換origin/master
。
「你失去了分支中的所有提交...」我不遵循這個部分。我的目標是通過將他們移動到特性分支來保持我的未完成提交。 「這個假設你沒有對主人進行任何改動」。再一次,沒有提交的提交是我問我問題的全部原因。 – BrianHoltz
我看到我想要做的是在git-reset手冊頁中的「撤消提交,使其成爲主題分支」中描述。 – BrianHoltz
BrianHoltz提到的git手冊頁在這裏:http://git-scm.com/docs/git-reset/2.0.0#_examples –
首先重申你的情況,以確保我的理解正確。你在master
上做了一些提交,並且想把它們移動到feature
,所以你跑git rebase feature
?首先,你想撤消這個。假設您還有master
已簽出,並且沒有進行任何rebase,請運行git reset --hard ORIG_HEAD
以撤消rebase。
現在,將您的提交移動到feature
分支的正確方法。做,所以你不要弄亂master
檢出一個臨時黨支部:
git checkout -b temp
現在變基承諾上origin/master
自上次的所有更改到feature
:
git rebase --onto feature origin/master
即移動temp
分支爲如果它從feature
分支。我們的修改合併到feature
,做到:
git checkout feature
git merge temp
git branch -d temp
這將是一個快進合併,因爲你剛剛重建基礎。
- 1. 分支模型:如何將分支完成的更改移至另一分支
- 2. Subversion將未提交的更改提交到一個新分支
- 3. GIT中移動從主未提交更改至新分支
- 4. git將本地提交的更改移至新分支並按
- 5. 移動未提交更改到一個新的分支
- 6. 使用git,如何將一些未提交的更改從一個分支移動到另一個分支中的另一個分支?
- 7. 從一個分支移動到另一個沒有提交修改
- 8. Mercurial將更改移至新分支
- 9. 將提交更改爲另一個分支
- 10. Android Studio Git將提交的更改移動到另一個分支
- 11. 如何將更改從一個分支移動到另一個分支git?
- 12. 將提交從一個分支移動到另一個分支
- 13. 合併分支,但有一個修改提交
- 14. 如何將未被更改的更改從一個分支轉移到其他
- 15. hg:對另一個分支提交一些更改
- 16. 移動git的分支之間的未提交更改
- 17. 如何將所有提交從一個分支移動到另一個分支?
- 18. Git:簽出一個保留未提交更改的分支
- 19. git將來自一個提交的更改應用到另一個分支
- 20. 切換分支以及移動已提交但未提交的提交
- 21. 如何提交更改到新分支
- 22. 如何將提交移動到另一個分支?
- 23. git如何合併單個提交中的新更改到另一個分支?
- 24. 如何將分支(或指定的提交)移動到另一個分支?
- 25. 針對已更改但未更改的特定文件提交更改
- 26. 更改分支和本地未提交更改
- 27. 將提交的更改從中繼移動到分支
- 28. 的Git:如何修改提交多個分支共享
- 29. 讀取已修改但尚未提交的數據
- 30. Mercurial,將工作副本中的更改提交到另一個分支
不是一個笨蛋。這是一個非常不同的問題,已經發生了變化,更不用說已經經歷了一個不正確的rebase。 –