Git糟糕的合并:了解它们

时间:2014-02-12 21:58:09

标签: git merge conflict git-merge merge-conflict-resolution

我有一个简短的问题,我希望有人可以解释或至少指出我的一些文件。我已经阅读了git-merge手册页,但我仍然不明白是什么导致这种情况发生的。

我们的主分支是版本1.

我们的一些开发人员和图形设计师已经在他们自己的主人分支上工作了大约三个星期。开发人员一直在制作补丁和更新。图形设计师一直致力于第2版 - 完全重新设计。

我一直害怕合并这个,因为我之前看到git做错了合并,基本上覆盖了代码并破坏了东西。

无论如何,我们有很多合并冲突,而且肯定在第二个文件的中途我发现了一些似乎不对的东西。我把设计师和开发人员联系在一起,果然,设计师的改变被覆盖了。

现在,开发人员从未检查过设计师工作的副本,也没有将其合并到他们的分支中。然而,有可能设计师在某个时候检查了主分支并自行解决了一些冲突以获得一些最新的变化(我不知道这是否重要,但我希望在这种情况下,设计者提交会覆盖开发人员。)

如上所述,这不是第一次出现这样的事情,因为这是一个非常大的合并,我想了解发生了什么。

1 个答案:

答案 0 :(得分:3)

您可能希望为您的团队寻找更复杂的工作流程。对我来说,目标是将master作为纯粹工作提交的日志并使用功能/修补程序分支来处理。这基于git-flow模型。

例如,假设您是开发用户身份验证的开发人员。你会:

  • 从开发中查看新分支:git checkout -b feature/auth develop
  • 进行一些更改
  • 提交您的代码:git commit -m 'commit message'

现在你想推动你的改变发展。不幸的是,设计师已推送了一些更改,其中一个更改会影响您的提交中的文件。这意味着你的分支已经从发展中“分歧”。

  • 运行git rebase develop以覆盖更改以开发到您的功能提交
  • 如果存在冲突,则需要修复它们
  • 解决冲突后,继续使用rebase。

准备好后,您可以将develop的提示推送到master。查看我上面发布的链接,了解有关发行分支,修补程序等的更多信息。

相关问题