我需要使变化集2-5在红色(最左边)分支上,而不是在蓝色树枝上。得到了奇怪的结果与重新基地,因为2-5是“基于”的1无论如何。我要摘樱桃吗?我目前正在使用源树。
提交2-5必须只出现在蓝色分支后,拉请求。这意味着它们必须出现在红色的树枝上,得到批准,然后才能合并成蓝色的。
发布于 2014-06-04 15:34:42
那就把分支合并。Git将执行快速前向合并(不会创建合并提交),因为在红色分支上没有提交,结果是提交2到5是“在红色分支上”--实际上,分支指针将被移动到指向5
,这似乎就是您想要的。
$ git checkout <red branch>
$ git merge <blue branch>
# or
$ git merge <commit id of 5>
RE:您的最新消息
看起来您想要“移动”提交到红色分支。你不能那样做,这不是Git的工作方式。您永远不能“移动”提交,您只移动分支指针。
如果希望提交只出现在红色分支上,基本上只需要交换分支指针。您可以通过一系列git reset --hard
来实现这一点,或者像上面一样将蓝色分支合并到红色分支中,然后将蓝色分支重置到提交2
之前的点。您必须选择哪个点,也就是说,因为提交2
是合并提交。通过将其重置为origin/blue-branch
状态,您可能会做得很好。
所以,照上面说的做,(把蓝色变成红色)然后.
$ git checkout <blue branch>
$ git reset --hard <commit id of red commit>
# OR
$ git reset --hard <commit id of purple commit>
# OR
$ git reset --hard <origin/blue branch>
https://stackoverflow.com/questions/24041624
复制相似问题