我们团队的成员使用不同版本的visual studio,VS似乎会自动使用以下代码更新sln文件:
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual C# Express 2010
或
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
每当我们使用解决方案时。我们可以配置git来忽略这些变化吗?我们对此行不感兴趣,但我们对.sln文件的其他更改感兴趣,例如:在解决方案中添加新的csproj。
答案 0 :(得分:0)
无法部分忽略文件。一个简单的解决方案是创建.sln文件的两个版本,并告诉团队打开与其版本对应的版本。
另一个解决方案是提交后挂钩,如果这些行被更改则拒绝提交。需要一些脚本,但这是可行的。
答案 1 :(得分:0)
在本地,您只需更新git index即可忽略某些文件中的更改,如下所示:
git update-index --assume-unchanged SolutionFile.sln
同样的事情可以做任何你的开发人员。
另一种解决方案是将文件添加到.gitignore
,如果您不想将其保留在源代码管理下。
答案 2 :(得分:0)
我会忽略.sln
文件,因为它们与构建项目无关:微软很久以前就意识到项目文件必须是可版本化的,并且所有由Studio完成的构建都是由{{1 }}引擎,它接受那些msbuild
(和其他.proj
,如.<whatever>proj
,.csproj
等)XML文件,并使用它们来构建项目。这些文件实际上是构建项目所需的一切,解决方案文件只包含各种簿记信息。
答案 3 :(得分:0)
你可以为git添加一个涂抹/清除过滤器,它会调用一个脚本来调整特定的行,以便在提交时保持一致。在“Can git automatically switch between spaces and tabs?”中,它显示了如何实现类似的更改,其中空格在结帐时转换为制表符,并在提交时转换回空格。
您可能需要编写脚本来识别和修改相关行,而链接的示例使用预先存在的unix命令在制表符和空格之间进行交换。