我想将我的功能分支中的GitHub拉取请求合并到开发中。这是GitHub上通过命令行进行操作的说明:
第1步:
git fetch origin
git checkout -b feature-branch origin/feature-branch
git merge development
第2步:
git checkout development
git merge --no-ff feature-branch
git push origin development
为什么需要git merge development
?
答案 0 :(得分:2)
这里的问题是,从您最初从development
创建功能分支的那一刻起,您和的其他人都可能已经提交了该功能,并且development
分支。此处的图表可能会有所帮助:
development: -- A -- B -- C -- D
\
feature: E -- F
在这里,您是在development
提交时从B
分支出来的,此后您进行了F
提交,而其他人(甚至您也是)进行了{{1 }}和C
提交到远程D
分支。您的两个步骤中的第一步是将development
合并到功能分支中:
development
现在您在本地有一个development: -- A -- B -- C -- D
\ \
feature: E -- F -- M1
合并提交,并且您的分支应该完全与M1
和C
提交中远程输入的内容保持最新。现在,您可以将功能分支合并到D
中,而只需:
development
关于为什么需要这两个步骤,第一步确保自您最初创建分支以来,本地功能分支与远程development: -- A -- B -- C -- D -- M2
\ \ /
feature: E -- F -- M1
上发生的一切保持最新。至少在某些情况下,不执行此步骤将意味着合并最终会导致一些冲突。 GitHub检测到了这一点,并且如果您不是最新的人,通常会拒绝合并。第二步可能是您所期望的,只是将功能分支实际合并到development
中。