我们有几个人使用Visual Studio 2015和git在同一个项目上工作。除了.csproj
文件(项目文件)之外,这个方法运行得相当好。每次你向项目添加一个新文件,.csproj
文件都会自动更改。因此,如果两个(或更多)人向他们的本地版本添加一个文件,则需要从最后一个提交的文件进行合并。
有没有办法避免这种情况?
**编辑:**我可以提取,但不能拉取或提交。如果我尝试拉取,Visual Studio Git会将远程.csproj
文件与我的本地版本合并。但它无法自动执行此操作,而且我每次尝试协助它都会导致.csproj
文件无法正常工作。
3条答案
按热度按时间62o28rlo1#
Visual Studio创建的
.csproj
文件是XML数据。它会尝试将这些文件合并为普通的文本文件,结果很少是有效的XML,更少的是类似于函数的东西。默认情况下,当Git无法合并这些XML文件时,通常会出现 merge conflict:Git会停下来让你收拾残局。这取决于你是否能做好这件事。VS是否提供了任何工具来帮助你,我不知道(我避免使用Windows)。另请参见this description of the problem(这个链接也在链接问题的答案中,但我认为我应该在这里将它作为一个直接链接)。
有些人试图使用联合合并来完全自动合并这些XML文件,这样就不会有Git冲突。这不是一个好主意。详细信息请参见VS 2013 C# and Git: .csproj files don't merge upon pulling。
e3bfsja22#
对于5年后在这里阅读这个问题的任何人:如果您还在为这个问题而挣扎,您可能需要升级到.NET 6(或更高版本)。
.csproj
文件现在小了很多,导致的合并冲突少了很多。knpiaxh13#
不需要。你试过这样的流程吗?有很多冲突吗?Git中的合并冲突不是发生在两个人修改一个文件时,而是发生在两个人修改同一行时。老实说,Git存储的不是文件,而是内容。文件只是人类处理内容的常用方式。
所以我的答案是尝试,看看是否有任何问题,因为Git自动解析器是相当聪明的,有可能你的问题将是不存在的。