我在我的主分支的孩子中有一些不需要的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。 –