我们正在使用Visual Studio 2015和git在同一个项目中为几个人工作。这对于.csproj
文件(项目文件)的预期效果相当好。每次向项目添加新文件时,.csproj
文件都会自动更改。因此,如果两个(或更多)人将文件添加到其本地版本,则需要从提交的最后一个人合并。
有没有办法避免这种情况?
编辑:我可以抓取,但不能拉取或提交。如果我尝试拉,Visual Studio Git想要将远程.csproj
文件与我的本地版本合并。但它不能自动执行此操作,并且我为协助它而进行的每次尝试都会导致无效的.csproj
文件。
答案 0 :(得分:4)
Visual Studio创建的.csproj
文件是XML数据。 Git对XML一无所知;它尝试将这些合并为普通文本文件。结果很少是有效的XML,甚至更少有类似功能的东西。
默认情况下,当Git无法合并这些XML文件时,您通常会遇到合并冲突:Git会停止并让您修复这些混乱。你可以做到这一点。 VS是否提供任何帮助工具,我不知道(我避免使用Windows)。另请参阅this description of the problem(此链接也在链接问题的答案中,但我想我应该将其作为直接链接包含在此处。)
有些人尝试使用union merge来完全自动化这些XML文件的合并,因此存在 no Git冲突。这不是一个好主意。有关详细信息,请参阅VS 2013 C# and Git: .csproj files don't merge upon pulling。
答案 1 :(得分:-1)
没有必要。你试过这样的流吗?那里有很多冲突吗?当几个人修改一个文件但几个人修改同一行时,Git中的合并冲突不会发生。说实话,Git不存储文件,而是存储内容。文件只是人类处理内容的常用方式。
所以我的答案是试着看看是否有任何问题因为Git自动解析器非常聪明并且你的问题可能不存在。