忽略git commit的某些更改

时间:2013-04-24 08:47:35

标签: .net visual-studio git version-control gitignore

我们团队的成员使用不同版本的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。

4 个答案:

答案 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命令在制表符和空格之间进行交换。