.gitignore中的合并冲突



我有两个分支,masternewfeature。当我想将newfeature合并到master时,我使用了:

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中?

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

线路:

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

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

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

分支中的新功能

你只需要按照你希望它最终出现的方式编辑文件。然后

git add .gitignore
git commit

只需编辑.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

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

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

vim .gitignore
# assuming you want all 4 lines: simply remove the conflict markers (<<<<<<, ======, and >>>>>)
git add .gitignore
git commit

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

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

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

使用git mergetool解决冲突(或者自己手动解决;这不是一个特别难解决的问题),然后重新提交。

您应该手动合并.gignore,然后通过将其添加到索引中

$ git add .gitignore

您可以在此处获得合并的基本信息:http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging

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

在分支newfeature上对.gitignore所做的修改与在master上所做的一致。行:<<<<<<< HEAD表示在此行之后对master进行的修改,而行>>>>>>> newfeature表示在此行之前对newfeature进行的修改。这两个修改由CCD_ 15分隔。

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

Repo在创建时已经有一个文件。创建项目时再进行一次Visual studio项目。以冲突告终。删除本地gitignore并重新启动本地回购有助于解决冲突。

最新更新