我有两个分支,master
和newfeature
。当我想将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并重新启动本地回购有助于解决冲突。