VS2015从GitHub拉取代码后所有文件无故签出无变更求助
排查VS2015拉取GitHub代码后假变更的问题
我之前在VS2015里也碰到过几乎一模一样的情况,折腾了好一阵才找到原因,给你几个实用的排查方向:
检查行尾符配置冲突
这是最常见的原因。VS和Git的行尾符处理逻辑不一致时,会出现文件内容没变化但被标记为变更的情况。- 打开VS的「工具」->「选项」->「源代码管理」->「Git全局设置」,查看行尾符选项;
- 打开仓库根目录的命令行,输入
git config core.autocrlf查看Git的行尾符配置;
如果两边配置不匹配(比如VS设为自动转换,Git设为true),可以尝试把Git的配置改成git config core.autocrlf false,然后重新拉取代码试试。
重置文件属性
有时候拉取代码后,Windows会自动给文件加上只读属性,VS会误判为变更。
选中解决方案下所有文件,右键「属性」,取消「只读」勾选,然后刷新Team Explorer的「Changes」页面,看状态是否恢复正常。清理VS本地缓存
VS的缓存文件损坏也会导致状态显示异常。关闭VS后,删除以下两个目录的缓存文件:%LOCALAPPDATA%\Microsoft\Team Foundation\5.0\Cache%LOCALAPPDATA%\Microsoft\VisualStudio\14.0\ComponentModelCache
重启VS后再检查变更状态。
同步Git索引与VS状态
如果Git本身认为仓库是干净的(命令行输入git status显示「nothing to commit, working tree clean」),那就是VS的Team Explorer和Git不同步了。
可以试试在VS里执行「同步」操作,或者在命令行运行git reset --hard HEAD重置索引,回到VS后刷新Changes页面。检查.gitignore规则
虽然你说对比文件没有实际变更,但还是建议检查下仓库的.gitignore文件,看看有没有漏掉某些自动生成的文件(比如临时文件、配置文件),这些文件可能被VS误标记为变更。
内容的提问来源于stack exchange,提问作者C.M.W.
相关产品推荐
相关产品推荐

