Github 拉请求中的Git冲突

Github 拉请求中的Git冲突,github,merge-conflict-resolution,Github,Merge Conflict Resolution,我有两个分支-master和develope 我在我的develope分支中做了一些pull请求,其中包含5项,与master中的项数相同 但是,有人做了一些提交,将中的一些项目推送到主分支,因此现在它有8个项目 由于我在develope中的拉取请求尚未批准/合并,每当我尝试更新拉取请求时,我都会收到消息,说明此拉取请求无法合并。您需要解决冲突才能合并,并要求我执行以下操作: git fetch origin master git checkout develop git merge FETC

我有两个分支-
master
develope

我在我的
develope
分支中做了一些pull请求,其中包含5项,与
master
中的项数相同

但是,有人做了一些提交,
中的一些项目推送到
分支,因此现在它有8个项目

由于我在
develope
中的拉取请求尚未批准/合并,每当我尝试更新拉取请求时,我都会收到消息,说明
此拉取请求无法合并。您需要解决冲突才能合并
,并要求我执行以下操作:

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

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

这意味着GitHub希望将您的PR分支合并到
master
,但它不能,因为存在冲突。正如您在问题注释中所讨论的,处理此问题的最佳方法(通常)是在命令行上将
master
分支合并到
developer
。这将向您显示冲突并要求您解决它们。一旦您完成并按下合并按钮,PR将可以使用GitHub上的绿色按钮合并回
master

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

通过第一种方式

  • 通过使用PR在GitHub上合并到master,您可以进行更好的审计跟踪
  • 您为您的团队提供了一个在合并后、在代码登录到
    master
    之前检查代码的机会;及
  • 如果您有检查PRs的自动测试(如Travis CI或CircleCI),那么您也可以给它们一个运行合并代码的机会

  • 不,它要求您合并。您似乎对分支的工作方式感到困惑——请参阅@remram,可能我确实感到困惑。但即便如此,为什么它会要求我将大师合并到开发中?通常情况下,我的情况正好相反,如果你在开发中合并master,那么github将能够自动在master中合并develop。@remram-Hmm,好的。。还是不明白为什么我要合并高手开发。。这意味着我需要在master和development分支中拥有相同数量的项,以防止将来发生此类冲突?您不需要做任何事情。Github只会告诉您这些分支是否可以自动合并。如果他们不能,到时候你只需要从命令行而不是网站上合并公关,就这样。这对我来说有点意义,特别是在公关部门的情况下,这与我所做的完全不同,我的
    develope
    分支被合并到
    master
    中,就像你提到的那样。没错。如果有一个
    develope
    分支定期合并到
    master
    ,那么最好不要从该分支发出请求。如果愿意,您可以从特定主题分支向
    deploy
    发出请求,然后在准备将一组更改移到另一个主题分支时,在命令行上将
    deploy
    合并到
    master
    。此链接提供了如何实现Peeja将master合并到develop语句的良好概述: