Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 如何合并有冲突的存储库?_Git_Github_Merge - Fatal编程技术网

Git 如何合并有冲突的存储库?

Git 如何合并有冲突的存储库?,git,github,merge,Git,Github,Merge,我对git/GitHub非常陌生,经常感到困惑。我特别困惑的是如何将两个存储库合并为合并冲突 所以,有一个同事的基本存储库,我把它分叉了,比如说他的名字叫弗兰克,所以我把Frank/master分叉成me/master。现在我做了更改,Frank做了更改,所以现在me/master前面有10次提交,后面有20次提交Frank/master 现在,我想将存储库合并到一起。然而,我和弗兰克都编辑了相同的文件,这意味着拉请求不能自动合并 我认为解决这个问题最简单的方法是在GitHub上创建一个新分支(

我对git/GitHub非常陌生,经常感到困惑。我特别困惑的是如何将两个存储库合并为合并冲突

所以,有一个同事的基本存储库,我把它分叉了,比如说他的名字叫弗兰克,所以我把
Frank/master
分叉成
me/master
。现在我做了更改,Frank做了更改,所以现在
me/master
前面有10次提交,后面有20次提交
Frank/master

现在,我想将存储库合并到一起。然而,我和弗兰克都编辑了相同的文件,这意味着拉请求不能自动合并

我认为解决这个问题最简单的方法是在GitHub上创建一个新分支(我做到了),名为
devel
,并拉入
frank/master
。我在GitHub上打开了一个pull请求,然后按照命令行说明解决冲突:

git checkout -b frank-master devel
git pull https://github.com/frank/theRepositor.git master
然后,我使用
gitmergetool
解决了meld中的冲突(并编辑了中间的文档),然后执行了操作

git checkout devel
git merge --no-ff frank-master
git push origin devel
现在Github页面说我的devel存储库落后20次提交,领先frank/master 11次提交,但拉请求仍然打开,无法解决


我做错了什么?解决此类冲突并将存储库重新合并的正确工作流是什么?

您可以在GitHub web UI中解决简单的合并冲突,就像您正在描述的那样。查看本文:

如果由于拉取请求的两个分支在同一文件的同一行上存在差异而发生合并冲突,现在可以点击拉取请求正文中的“解决冲突”按钮。这将启动一个文本编辑器,您可以在其中解决问题。必须删除所有其他类型的合并冲突

解决合并冲突时,您可以选择保留某个分支的内容或进行全新更改。只需查找并删除冲突标记(
),进行更改,点击标记为已解决按钮,然后点击提交更改按钮。解决所有合并冲突后,合并请求按钮将变为绿色,这意味着您可以合并更改。这假定所有必需的状态检查都通过,并且您有权合并到该分支


要了解更多信息,请访问GitHub关于合并冲突的帮助文章:

推送的输出是什么?它成功了吗。通常,在这种情况下,重定基础比合并更改更容易。基本上,你接下来要做的就是用franks更新主机,并在上面应用你的更改。不管怎么说,我认为解决办法是签出-b frank master origin/devel,因为如果你还有一个本地版本的devel,它将基于此。或签出并拉取
devel
first@Rik使用建议的命令,我得到了错误:pathspec'origin/devel'与git已知的任何文件都不匹配。我重新执行了所有步骤,现在似乎都正常工作了,可能是因为我刚刚忘记了添加或提交一些内容。谢谢,我不知道直接在GitHub上实现这一点。如果我没记错的话,pull请求页面上没有这样的按钮,可能是因为有冲突的文件无法在GitHub编辑器中编辑。