我如何在Git中处理Visual Studio解决方案和项目文件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何在Git中处理Visual Studio解决方案和项目文件?相关的知识,希望对你有一定的参考价值。

我通常使用.NET使用Git进行版本控制。在我的团队中,我们并行工作,并且经常提交代码以将其集成到应用程序中。一切都很好,但可以使用Visual Studio的解决方案和项目文件。我们发现了两种方法:

  1. 从不提交这些文件,每个人都有自己的文件
  2. 将那些文件包含在版本系统中

两种方式都有优点和缺点,但是基本上,每次我们从中央仓库回购时,我们都在挣扎。在这里,我们发现了一些备用问题:(在括号中,是对上面列表的引用)

  • 我们必须在项目中包括其他人的文件(1)或包括我们的最新文件(2)
  • 如果我们使用不同的体系结构(x86 / x64),则必须手动更改.csproj文件(2)
  • 对参考文献和NuGet软件包回答了相同的问题

依此类推。 我可以使用适当的工作流程吗?

答案

提交.sln.csproj文件通常是最佳做法(与this answer相同),但是合并需要一定注意。请参阅“ Why are my .csproj files getting messed up after a git rebase?”。

.csproj(请参见下文)git rebasev

或者您可以放弃*.csproj -text merge=union并在本地重新生成它们*.sln -text merge=union。忽略这些csproj文件的另一个原因是它们是否已重新生成,如.csproj

as in this tweet警告(in this context)与yellowblood策略一起使用时,in the comments文件存在严重冲突问题。这与文章“ csproj”相呼应。这就是为什么要有merge=union的原因(如果要添加Merge conflicts in csproj files文件以适应该模式,请not修改csproj文件)。

有人建议,如果Visual Studio首先对元素进行排序,那将有助于减轻问题。这有助于减少由Visual Studio明显的非确定性元素类型引起的偶然冲突。但这并不会消除合并冲突的问题。

另一答案

在我们的项目中,我们将其检入版本控制。我们从suggestion for VS IDE should support file patterns in project files中的.csproj和一个简单的.cs文件开始:

以上是关于我如何在Git中处理Visual Studio解决方案和项目文件?的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio Code 如何解决与 git 的合并冲突?

如何在 Visual Studio 2015 中从 Git 获取特定版本?

如何解决 Visual Studio 2019 中的这个 dll 缺失问题?

如果解决方案目录中的“.git”,Visual Studio 2017 崩溃

如何在Visual Studio中配置git

在 Visual Studio 中使用 Git 时出现“冲突阻止签出”错误