27

我有 2 个分支,master并且newfeature. 当我想合并newfeaturemaster时,我使用了:

git checkout master
git merge newfeature

我得到错误:

Auto-merging .gitignore
CONFLICT (content): Merge conflict in .gitignore
Automatic merge failed; fix conflicts and then commit the result.

我打开了.gitignore,现在看起来一团糟,文件的最后一部分看起来像

<<<<<<< HEAD
public/img/ignore
=======
public/img/profiles
public/blog
public/recommendation
>>>>>>> newfeature

发生了什么事,应该如何解决这个问题,以便我可以将分支合并到master

4

8 回答 8

29

您在两个分支中都编辑了 .gitignore。现在,git 不确定每个副本中的哪些行是正确的,因此它要求您解决它们。

这些行:

<<<<<<< HEAD
public/img/ignore
=======

是主文件副本中出现的内容。

=======
public/img/profiles
public/blog
public/recommendation
>>>>>>> newfeature

在分支新功能中

您应该只需要编辑文件,因为您希望它最终出现。然后...

git add .gitignore
git commit
于 2012-08-28T13:52:51.800 回答
9

只需编辑.gitignore文件即可解决冲突:

<<<<<<< HEAD
public/img/ignore
=======
public/img/profiles
public/blog
public/recommendation
>>>>>>> newfeature

public/img/ignore
public/img/profiles
public/blog
public/recommendation

然后:

git add .gitignore

git commit

自动生成的提交消息应该出现,接受它(保存并关闭),它就完成了。

于 2012-08-28T13:51:03.217 回答
2

修复文件中的冲突.gitignore,添加更新的版本,然后提交:

vim .gitignore
# assuming you want all 4 lines: simply remove the conflict markers (<<<<<<, ======, and >>>>>)
git add .gitignore
git commit
于 2012-08-28T13:50:26.650 回答
2

发生的事情是发生了合并冲突:两个分支在不同的流中“同时”更改了文件。您可以在“newfeature”部分和 HEAD 部分看到其他分支所做的更改。

您需要做的是编辑该文件,使其包含您想要的内容,添加要遵循的内容,然后提交。这称为合并提交。

现在,我上面所说的是手动“手动”进行合并。这可能是最容易理解的。如果已配置,您还可以使用git mergetool命令通过可视化工具执行此操作,或者使用“git merge”和一些策略来告诉它如何处理冲突。

于 2012-08-28T13:53:57.060 回答
1

用于git mergetool解决冲突(或者只是手动修复它;这不是一个特别难解决的情况),然后重新提交。

于 2012-08-28T13:50:07.407 回答
1

您应该手动合并您的 .gitignore,然后将其添加到索引中

$ git add .gitignore

您可以在这里获得合并的基础知识:http: //git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging

于 2012-08-28T13:50:50.080 回答
1

Git 的自动合并失败。当尝试合并分支/推送内容时,当不同分支/存储库中的同一文件同时发生更改时,通常会发生这种情况。

在分支 newfeature 上对 .gitignore 所做的修改与在 master 上所做的修改相冲突。line:<<<<<<< HEAD表示对 master 所做的修改,位于此行之后,而 line>>>>>>> newfeature表示对 newfeature 所做的修改,位于此行之前。这两个修改由 分隔=======

您应该手动编辑文件并保留/合并两部分中有用的内容。然后你应该提交(在删除<<<<HEAD,=====>>>newfeature行之后)。

于 2012-08-28T13:54:50.123 回答
0

Repo 在创建时已经有一个文件。在创建项目时再进行 Visual Studio 项目。以冲突告终。删除本地 gitignore 并将本地重新提交到 repo 以解决冲突。

于 2022-03-01T18:17:03.147 回答