git - Visual Studio团队资源管理器正在显示实际上并不存在的变化

时间:2017-07-01 03:34:29

标签: git visual-studio svn

我一直在Visual Studio 2013中尝试git-svn和git集成很短的时间。我遇到的一个问题是Visual Studio显示许多文件作为“包含的更改”(即“已修改”文件)的一部分,而实际上它们没有任何更改。

乍一看,研究表明,当存在行结束问题时会出现类似的问题,但是:

A)控制台中的Git运行正常(即git status显示没有变化)。

B)Git行结束规范化已经关闭(两者都是“git config --global core.autocrlf false”和.gitattributes文件中的“* text = off line”)

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

首先:

  • 使用最新的2.13.2版本的Git(除非Visual Studio 2013仍然基于libgit2,但即使这样,检查问题是否仍然存在于命令行中,使用Git 2.13.2)
  • 通过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。如果您使用此版本打开,它将没有任何问题。