我一直在Visual Studio 2013中尝试git-svn和git集成很短的时间。我遇到的一个问题是Visual Studio显示许多文件作为“包含的更改”(即“已修改”文件)的一部分,而实际上它们没有任何更改。
乍一看,研究表明,当存在行结束问题时会出现类似的问题,但是:
A)控制台中的Git运行正常(即git status显示没有变化)。
B)Git行结束规范化已经关闭(两者都是“git config --global core.autocrlf false”和.gitattributes文件中的“* text = off line”)
有什么想法吗?
答案 0 :(得分:1)
首先:
通过triggering a renormalization确保eol不参与您当前的本地回购:
$ rm .git/index # Remove the index to re-scan the working directory
$ git add .
$ git status # Check if files are still "modified"
其次,用以下方法检查那些“看不见的”变化的性质:
git diff --word-diff-regex=.
# or
git -c color.diff.whitespace="red reverse" diff -R -- afile
第三,检查这是否是权限问题(您可以unset other core.filemode
settings first):
git config core.filemode false
# renormalize as shown above.
答案 1 :(得分:0)
从@Vonc答案中,我检查并发现甚至VS 2015也仍在使用libgit2,您可以在“%PROGRAMFILES(x86)%\ Microsoft Visual Studio 14.0 \ Web \ External \ git”文件夹中进行确认。
要确认文件修改是否确实在Git-SCM中是真实的,只需使用标准的Git并运行以下命令以查看更改即可。
git diff --name-status
您很可能看不到任何变化。
顺便说一句,我发现VS 2017已切换为使用标准Git-SCM。如果您使用此版本打开,它将没有任何问题。