从一个分支合并到另一个分支会出现冲突

3
我有主分支(HEAD)和一个开发分支。当我在开发分支上进行更改时,我想要将这些更改合并到HEAD中。 git checkout master git merge develop 以下是错误信息:
Auto-merging addons/shared_addons/themes/beaver/views/partials/footer.html
CONFLICT (content): Merge conflict in addons/shared_addons/themes/beaver/views/partials/footer.html
Automatic merge failed; fix conflicts and then commit the result.

那么我做错了什么?为了让您了解我的工作流程:

我有一个后提交钩子,它检测我是否在主分支上,然后执行一个命令。但如果我在开发分支上,它就不会执行。所以当我在开发中进行更改时,我基本上只想从Dev拉取所有更改到Master。


1
通过 'git status' 命令检查项目,它会显示有冲突的文件,你需要自己解决。 - megas
1个回答

5
您并没有做错什么,有时合并可能会产生冲突。通常情况下,当开发分支和主分支上的同一文件中的同一行发生改变时,就会出现这种情况。
您需要做的是解决这些冲突,然后提交结果。如果您查看 addons/shared_addons/themes/beaver/views/partials/footer.html,您应该能找到标注有冲突的区域。被标注的区域以 <<<<<<< 开始,以 >>>>>>> 结尾,而两个冲突块本身则由 ======= 分隔。
例如:
<html>
  <head>
<<<<<<< HEAD
    <link type="text/css" rel="stylesheet" media="all" href="style.css" />
=======
    <!-- no style -->
>>>>>>> master
  </head>
  <body>
    <h1>Hello,World! Life is great!</h1>
  </body>
</html>

手动解决冲突
<html>
  <head>
    <link type="text/css" rel="stylesheet" media="all" href="style.css" />
  </head>
  <body>
    <h1>Hello,World! Life is great!</h1>
  </body>
</html>

然后添加文件并提交合并。

git add addons/shared_addons/themes/beaver/views/partials/footer.html
git commit -m "Merged develop into master fixed conflict."

这些页面提供了更详细的指南,帮助您解决合并冲突问题:


这就是正在发生的事情。如果我改变了20个文件并且必须手动返回修复它们,那么这有点麻烦。因此,如果我从head开始,没有挂起的提交,然后创建一个新分支。我从该新分支内部开始工作。我提交了所有更改。然后,我想强制将该分支中的所有内容合并到HEAD中,而无需手动执行任何操作,因为我在一个只有一个用户(即我)的repo中工作,所以我知道HEAD中没有任何更改。 - dallen
对不起,我是新手。我说的“head”其实是指“master”。 - dallen
好的,没关系。我不确定到底出了什么问题,但现在我可以顺利地进行合并了。 - dallen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接