Visual Studio 如何处理git中的.csproj

3lxsmp7m  于 2022-12-04  发布在  Git
关注(0)|答案(3)|浏览(348)

我们有几个人使用Visual Studio 2015和git在同一个项目上工作。除了.csproj文件(项目文件)之外,这个方法运行得相当好。每次你向项目添加一个新文件,.csproj文件都会自动更改。因此,如果两个(或更多)人向他们的本地版本添加一个文件,则需要从最后一个提交的文件进行合并。
有没有办法避免这种情况?

**编辑:**我可以提取,但不能拉取或提交。如果我尝试拉取,Visual Studio Git会将远程.csproj文件与我的本地版本合并。但它无法自动执行此操作,而且我每次尝试协助它都会导致.csproj文件无法正常工作。

62o28rlo

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

e3bfsja2

e3bfsja22#

对于5年后在这里阅读这个问题的任何人:如果您还在为这个问题而挣扎,您可能需要升级到.NET 6(或更高版本)。.csproj文件现在小了很多,导致的合并冲突少了很多。

knpiaxh1

knpiaxh13#

不需要。你试过这样的流程吗?有很多冲突吗?Git中的合并冲突不是发生在两个人修改一个文件时,而是发生在两个人修改同一行时。老实说,Git存储的不是文件,而是内容。文件只是人类处理内容的常用方式。
所以我的答案是尝试,看看是否有任何问题,因为Git自动解析器是相当聪明的,有可能你的问题将是不存在的。

相关问题