繁体   English   中英

VS2015,Git和撤消

[英]VS2015, Git and undo

在Git存储库中工作时,VS2015中的undo出现了一个奇怪的问题。 更改例如web.config,如果我撤消更改,则内容将更改为未修改的版本。 但是,即使文件没有更改,该文件仍显示为已更改的文件。

Se屏幕投射: https//jnus.tinytake.com/sf/MTIwNjg0OF80NjMzMDc1

使用以下配置:.gitconfig

[core]
    fscache = true
    preloadindex = true
    autocrlf = true

.gitattribute

* text=auto

知道为什么会这样。 我怀疑行结尾(当前使用CRLF),但无法确认这一点。

git diff的示例: 在此处输入图片说明

更新:我尝试使用以下别名对行尾进行归一化,没有任何运气。

git rm --cached -r . && git reset --hard && git commit -a -m 'Normalize CRLF' -n

更新2:似乎只影响基于XML的文件,例如csproj,co​​nfig等。

我建议检查一下git所说的内容:

  • 使用shell和git status或TortoiseGit,查看是否具有暂存版本和未暂存版本
  • 使用git diff ,查看修改后的内容

Ok找到了一个解决方案,该解决方案使用上述.gitattribute修复了我们所有解决方案中的所有行尾(准确的是240万个结尾)。 在此之后,撤消问题消失了。

$ echo "* text=auto" >>.gitattributes
$ rm .git/index     # Remove the index to force git to
$ git reset         # re-scan the working directory
$ git status        # Show files that will be normalized
$ git add -u
$ git add .gitattributes
$ git commit -m "Introduce end-of-line normalization"

尝试用git filter-branch修复行尾,但没有运气

这确实是一个PITA,对于团队来说,这不是Windows / Visual Studio上git的很好的初识。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM