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

问题描述 投票:21回答:2

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

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

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

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

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

c# git visual-studio workflow versioning
2个回答
17
投票

提交.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明显的非确定性元素类型引起的偶然冲突。但这并不会消除合并冲突的问题。


6
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.