2

我和一个朋友刚开始使用 git 和 GitHub 来帮助我们管理我们在 Visual Studio 2010 中工作的 C# w/XNA 项目。当只有一个人对文件进行更改时,一切正常,他的工作推动和与中央存储库正确合并。但是,当我们有两个不同的人同时处理代码并进行更改时,最后一个推送的人在尝试提取第一个人的更改时总是必须处理手动合并,因为自动合并失败了。即使我们所做的更改是不相关的,也会发生这种情况(IE 一个人添加了一个完全随机的、未使用的类,另一个人添加了第二个随机的、未使用的变量一个不同的、未使用的类)。我们可能花了 3 个小时左右的时间来解决这个问题,但无济于事。我知道有一些程序可以用来帮助促进手动合并,但我想确保不是某些设置导致了这个问题。谢谢!

编辑:我们现在在我们的存储库中使用一个 .gitignore 文件(这里的这个),看起来我们已经取得了一些进展。现在,当第二个人在推送他的更改之前拉到合并时,它似乎确实在他的本地副本上进行了更改(意味着他的项目文件注册了我之前所做的更改),但他仍然无法完全合并,因为他得到了以下内容他执行 git pull 时出错:

警告:无法合并二进制文件:collision/collision.suo (HEAD vs db023c2075...)

Auto-Merging collision/collision.suo CONFLICT(内容):在collision/collision.suo中合并冲突自动合并失败。修复冲突然后提交结果。

我已经检查并且 .suo 扩展名包含在忽略文件中,所以我不知道是什么导致了这个问题。任何进一步的帮助将不胜感激,并感谢那些已经发布的人。

4

2 回答 2

2

好吧!我们终于解决了这个问题。显然问题出在 .gitignore 文件及其创建方式上。我之前刚刚在记事本中创建了一个文件,但我想它没有被拾取。我所做的只是使用以下命令在 git bash 中重新创建它:

触摸.gitignore

然后添加它并提交。感谢所有的建议,绝对让我朝着正确的方向前进。

于 2012-04-27T06:35:01.160 回答
1

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

于 2012-04-26T19:44:02.620 回答