如何让Git自动检测Visual Studio 2017项目中新增的文件?
我之前在跨环境开发(尤其是虚拟机+共享文件夹的组合)里也踩过一模一样的坑,Git死活不认新增的文件,每次手动添加真的烦死人。给你几个亲测有效的解决思路:
先排查.gitignore的锅
打开解决方案根目录下的.gitignore文件,仔细看看有没有不合理的规则——比如是不是误写了*.cs、或者把项目子文件夹给排除了?要是发现某个路径被误忽略,直接在规则前加!来取消排除,比如!MyProject/Features/新添加的文件夹/。另外,VS自动生成的.gitignore有时候会对共享文件夹路径兼容不好,必要的话可以手动调整下针对.NET Core的规则。强制刷新Git索引
虚拟机的文件系统和Git的索引经常不同步,试试用命令行(VS里的Package Manager Console或者Git Bash都行)进入项目根目录,跑这几个命令:# 先尝试重新添加所有文件 git add .要是还不行,就强制刷新索引:
git update-index --really-refresh再狠一点就清除缓存重新追踪(放心,只要.gitignore没问题,不会把不该加的文件加进来):
git rm -r --cached . git add . git commit -m "修复Git索引,重新追踪所有文件"解决虚拟机共享文件夹的兼容性问题
你用的是Parallels共享文件夹,这种跨系统的文件共享经常会让Git的文件监控失效。试试把整个解决方案复制到Windows虚拟机的本地磁盘(比如C盘),看看新增文件能不能被正常识别——如果可以,那就是共享文件夹的锅。
不想搬文件的话,可以关掉Git的文件系统监控,让它主动扫描文件:git config core.fsmonitor false这个设置会让Git每次都扫一遍所有文件,速度慢一点,但在共享文件夹环境下绝对靠谱。
调整VS2017的源代码管理设置
打开VS的工具→选项→源代码管理→Git全局设置,确认Git的路径是指向你自己安装的完整版Git,而不是VS自带的精简版(我之前就是因为用了VS自带的Git才出问题)。另外,直接右键解决方案选Git→提交,在提交界面里看看能不能找到那些被忽略的文件,批量添加比一个个右键方便多了。
内容的提问来源于stack exchange,提问作者reckface




