我已经在development
分支上工作了一段时间,与此同时,另一位开发人员已经在master
分支上进行了更改(向主提交了几次提交)。
master
分支现在包含我的development
分支中没有的内容。
我可以合并development
分支而不影响master
分支中的新提交吗?也就是说,是否不覆盖master
中的任何新作品?
处理此问题的最佳方法是什么?
答案 0 :(得分:2)
假设你们正在研究项目的各个方面(并取决于您的IDE),通常可以指定要提交/推送的文件。我建议先从master
中撤出,然后复制您的更改并提交。然后创建一个拉取请求并合并分支。使用git时最好始终放心,即使需要更多步骤。
答案 1 :(得分:2)
不,git中合并的原理是可加的,您不能通过合并“覆盖”提交。
初始情况
A---B---C---D <<< master
\
E---F <<< development <<< HEAD
您的同事已提交C
和D
。现在,将development
合并到master
中。
git checkout master
git merge development
A---B---C---D---G <<< development, master <<< HEAD
\ /
E-------F
这时,可以从任一分支访问development
分支上的提交,但是C
和D
的提交仍在此处。
答案 2 :(得分:0)
我讨厌手工合并代码。我更喜欢先将master合并到我的dev分支中。这样,如果我搞砸了,结果代码将在我的dev分支中,而不是在master中。这还具有使代码审阅者(在我的情况下在合并之前发生)更容易的优点。
例如:
A---B---C---D---G <<< development, master <<< HEAD
\ \ /
-----E------F