我对git / GitHub很新,经常感到困惑。我特别困惑的是如何将两个存储库与合并冲突结合起来。
所以,我分叉的同事有一个基础知识库,说他的名字是弗兰克,所以我把frank/master
分成了me/master
。现在我进行了更改,并且Frank进行了更改,现在me/master
提前10次提交,而frank/master
提交了20次提交。
现在,我想将存储库合并在一起。但是,我和Frank都编辑了相同的文件,这意味着拉取请求不能自动合并。
我认为解决这个问题的最简单方法是在GitHub上创建一个新的分支(我做了),称为devel
,然后拉frank/master
。我在GitHub上打开了一个pull请求,然后按照命令行说明解决冲突:
git checkout -b frank-master devel
git pull https://github.com/frank/theRepositor.git master
然后我用git mergetool
解决了融合中的冲突(并编辑了中间文档),然后做了
git checkout devel
git merge --no-ff frank-master
git push origin devel
现在Github页面说我的devel存储库后面有20个提交,11个提交在frank / master之前,但是pull请求仍然是打开的,无法解析。
我做错了什么以及解决此类冲突并将存储库重新合并到一起的正确工作流程是什么?
答案 0 :(得分:1)
您可以在GitHub Web UI中解决简单的合并冲突,例如您所描述的冲突。看看这篇文章:https://help.github.com/articles/resolving-a-merge-conflict-on-github/
如果发生合并冲突,因为拉取请求的两个分支之间同一行的同一行存在差异,您现在可以点击 Resolve 冲突按钮,拉请求的主体。这将启动一个文本编辑器,您可以在其中解决问题。所有其他类型的合并冲突必须是resolved locally on the command line。
解决合并冲突时,您可以选择保留其中一个分支机构的内容或进行全新更改。只需查找并删除冲突标记(<<<<<
,=====
,>>>>>
),进行更改,点击标记为已解决按钮,然后点击提交更改按钮。解决所有合并冲突后,合并拉取请求按钮将变为绿色,这意味着您可以合并更改。这假设任何所需的状态检查都已通过,并且您有权合并到该分支。
要了解详情,请访问有关合并冲突的GitHub帮助文章:https://help.github.com/articles/about-merge-conflicts/