Git未检测到文件更改
背景
在本地仓库改动文件发现git检测不到修改了的文件,安装有Git状态可视化工具,文件改动后应该是红色标记,但是仍然是绿色的
git status,git diff等也都没有显示文件改动
原因
1.可能是文件命中了.gitignore文件过滤条件
检查后发现并不是
2.文件被 Git 标记为 assume-unchanged 或 skip-worktree
之前没有设置过此命令,莫名其妙的
表现 | 可能原因 |
---|---|
修改已有文件不被 Git 检测到 | 文件被标记为 assume-unchanged 或 skip-worktree |
新增文件可以正常提交 | 这类文件未被特殊标记 |
git diff、git status 无变化 | Git 主动忽略了这些文件的变化 |
验证:
运行以下命令查看哪些文件被 Git 忽略了变更检测:
git ls-files -v | grep '^[a-z]'
结果:
h agent-qa.csv
S README.md
h 表示文件被标记为 assume-unchanged
S 表示文件被标记为 skip-worktree
解决方法:
assume-unchanged
取消标记命令
git update-index --no-assume-unchanged <filename>
skip-worktree
取消标记命令
git update-index --no-skip-worktree <filename>