.net 忽略git提交的某些更改
我们团队的成员使用不同版本的visual studio,VS似乎会自动更新sln文件,代码如下:.net 忽略git提交的某些更改,.net,visual-studio,git,version-control,gitignore,.net,Visual Studio,Git,Version Control,Gitignore,我们团队的成员使用不同版本的visual studio,VS似乎会自动更新sln文件,代码如下: Microsoft Visual Studio Solution File, Format Version 11.00 # Visual C# Express 2010 或 每当我们使用解决方案时。我们可以将git配置为忽略这些更改吗?我们对这一行不感兴趣,但对.sln文件的其他更改感兴趣,例如向解决方案中添加新的csproj。部分忽略文件是不可能的。一个简单的解决方案是创建两个版本的.sln文件
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual C# Express 2010
或
每当我们使用解决方案时。我们可以将git配置为忽略这些更改吗?我们对这一行不感兴趣,但对.sln文件的其他更改感兴趣,例如向解决方案中添加新的csproj。部分忽略文件是不可能的。一个简单的解决方案是创建两个版本的.sln文件,并告诉团队打开与其版本对应的版本
另一个解决方案是一个post-commit钩子,如果这些行被更改,它将拒绝提交。需要一点脚本,但这是可行的。在本地,您只需更新git索引即可忽略某些文件中的更改,如下所示:
git update-index --assume-unchanged SolutionFile.sln
您的任何开发人员都可以做同样的事情。
另一个解决方案是将文件添加到
.gitignore
中,如果您不想将其置于源代码管理之下。我将忽略.sln
文件,因为它们与构建项目无关:Microsoft不久前意识到,项目文件必须是可版本化的,并且工作室完成的所有构建都是可更新的由msbuild
引擎执行,该引擎获取那些.proj
(以及其他.proj
,如.csproj
,.vbproj
等)XML文件,并使用它们构建项目。这些文件实际上是构建项目所需的所有文件,而解决方案文件只包含各种簿记信息。您可以在git中添加一个污点/清除过滤器,该过滤器调用脚本来调整特定行,使其在提交时保持一致。在“”中,它展示了如何实现类似的更改,其中空间在签出时转换为选项卡,在提交时转换回空间
您可能需要编写脚本来识别和修改相关行,而链接的示例使用预先存在的unix命令在选项卡和空格之间进行交换
git update-index --assume-unchanged SolutionFile.sln