背景
在本地倉庫改動文件發現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>