Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 忽略git提交的某些更改_.net_Visual Studio_Git_Version Control_Gitignore - Fatal编程技术网

.net 忽略git提交的某些更改

.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文件

我们团队的成员使用不同版本的visual studio,VS似乎会自动更新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