在Git/GitHub中自动合并Visual Studio项目时出现问题(未解决的冲突)

3
我和我的朋友刚开始使用git和GitHub来帮助我们在Visual Studio 2010中管理我们正在进行的C# w/XNA项目。当只有一个人更改文件时,一切都正常,他的工作会正确地推送并与中央仓库合并。然而,当两个不同的人同时在代码上工作并进行更改时,最后一个推送的人总是必须处理手动合并,以便在尝试拉取第一个人的更改时,自动合并失败。
即使我们所做的更改是无关的(例如,一个人添加一个完全随机未使用的类,另一个人添加一个不同的未使用类的第二个随机未使用变量),这种情况仍会发生。我们可能已经花费了约3个小时来解决这个问题,但没有任何效果。我知道有些程序可以用来帮助进行手动合并,但我想确保它不是某个设置导致此问题。
编辑:我们现在在我们的存储库中使用.gitignore文件(这里),似乎我们已经取得了一些进展。现在,当第二个人在推送自己的更改之前拉取并合并时,它确实似乎在他的本地副本上进行了更改(这意味着他的项目文件注册了我之前所做的更改),但是他仍然无法完全合并,因为当他执行git pull时,会出现以下错误:
警告:无法合并二进制文件:collision/collision.suo(HEAD vs db023c2075...)
自动合并collision/collision.suo 冲突(内容):合并冲突在collision/collision.suo中 自动合并失败。解决冲突,然后提交结果。
我已经检查过.suo扩展名是否包含在忽略文件中,所以我不知道是什么原因导致这个问题。任何进一步的帮助将不胜感激,感谢那些已经发表过帖子的人。

1
你的历史记录树的截图会更好地帮助理解问题。也许你可以编辑问题,指向 Github 存储库,或者只是发布一个此命令输出的截图:git log --oneline --graph --decorate --all - suvayu
1
将错误的完整细节粘贴过来对我们也会有帮助。 - Jay Taylor
我已经在上面的问题中添加了合并错误,如果您需要更多信息,请让我知道。此外,该存储库是私有的。 - user1359331
2个回答

2

好的!我们终于解决了问题。显然问题出在.gitignore文件上以及它是如何被创建的。我之前只是在记事本里创建了一个文件,但是我猜测它并没有被识别。我所做的就是在git bash中重新创建了它,具体操作如下:

touch .gitignore

然后添加并提交。感谢大家提供的所有建议,确实让我朝着正确的方向前进。


1

你可能没有忽略二进制和本地配置文件。你需要创建.gitignore文件,并在其中列出不想添加到仓库中的内容。 你可以在这里找到更多信息。


谢谢你的提示。我之前没有意识到我们需要一个Visual Studio的插件。我尝试使用了几个不同的插件,但目前仍然看到一些错误。 - user1359331
@user1359331 提醒一下,当一个回答对你有用时,你应该点赞以回报回答者。同时,你也应该接受一个回答,这样来到问题页面的人就能看到是什么解决了你的问题。 - vguzmanp

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