我需要将变更集2-5设置在红色(最左边)分支而不是蓝色分支上。由于2-5基于"基于"反正1。我需要樱桃挑选吗?我目前正在使用Source Tree。
提交2-5必须仅在拉取请求后出现在蓝色分支上。意思是他们必须出现在红色分支上,获得批准,然后才合并为蓝色分支。
答案 0 :(得分:3)
然后合并分支。 Git将执行快进合并(不会创建合并提交),因为红色分支上没有提交,结果是提交2到5是"在红色分支上#34; - 实际上,分支指针将移动到指向5
,这似乎是你所追求的。
$ git checkout <red branch>
$ git merge <blue branch>
# or
$ git merge <commit id of 5>
RE:您的更新
看起来你想要&#34;移动&#34;提交到红色分支。你不能这样做,这不是Git的工作方式。你永远不能移动&#34;提交,你只移动分支指针。
如果你想让提交出现&#34;只有&#34;在红色分支上,你基本上只需要交换分支指针。您可以通过一系列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>