拉请求中的Git冲突

时间:2014-09-29 09:39:35

标签: github merge-conflict-resolution

我有2个分支 - masterdevelop

我一直在我的develop分支中执行一些拉取请求,其中包含5个项目,其中它与master中的项目数相同。

但是,有人在pushed分支中的一些项目中进行了一些提交并master,因此它现在有8项。

由于develop中的拉取请求仍未被批准/合并,每当我尝试更新我的拉取请求时,我都会收到消息,指出This pull request can't be merged. You will need to resolve conflicts to be able to merge并要求我执行以下操作:

git fetch origin master
git checkout develop 
git merge FETCH_HEAD
git commit
git push origin HEAD

这是在我“推出”我的提交之后发生的,有时让我感到困惑。然后我意识到它要求我重新添加并重新提交另外3个新项目。那么这是否意味着我必须确保我的这两个分支之间的项目和内容应该一如既往?我一直使用git pull/fetch,但有没有更好的方法让我确定?

2 个答案:

答案 0 :(得分:17)

这意味着GitHub想要将您的PR分支合并到master,但它不能,因为存在冲突。正如您在问题评论中所讨论的那样,处理此问题的最佳方法(通常)是在命令行上将master分支合并到develop。这将告诉你冲突并要求你解决它们。完成并推送合并后,PR将使用GitHub上的绿色按钮合并回master

可以简单地将你的deploy分支合并到master(我觉得这听起来更合理一些)。在这种情况下,你将彻底绕过PR。您必须关闭PR“未合并”,并单独手动将合并提交推送到master

第一种方式,

  1. 通过使用PR合并到GitHub上的主人来制作更好的审计跟踪;
  2. 您的团队有机会在合并后审核您的代码,然后才能登陆master;和
  3. 如果您有检查PR的自动测试(例如Travis CI或CircleCI),您也可以给他们运行合并代码的机会。

答案 1 :(得分:0)

我使用eclipse-git接口解决了它,如下所述。

1-在' dev'中保持所有更改准备就绪分支并将它们推送到git。

2-结帐到' master'分支并拉动所有更改。

3-转到' Git存储库视图 - >展开本地文件夹'并右键点击' master'分支并点击' merge'选项。

4-它将打开显示所有那些在Git staging'中出现红点的冲突。窗口。

5-现在右键单击每个红点并单击 - > '替换为git index'。那个红点现在会消失。

6-对所有红点执行此操作后,从右侧按钮提交合并。

7完成的。