git update-index 这个 Git 命令,是 Git 里直接操作暂存区(index) 的底层命令,非常实用但平时不常用。
1. 它是干什么的?
git update-index = 手动修改 Git 暂存区(index)的状态它不会改你的文件内容,只改 Git 对文件的跟踪状态。
最常用的 3 个功能:
- 忽略文件的权限变化(chmod 变化不算修改)
- 临时忽略文件的内容变化(文件改了但 Git 看不见)
- 强制把文件标记为已修改 / 未修改
2. 最常用的 3 条命令(直接复制用)
① 忽略文件权限变化(最常用)
当你只改了文件权限(chmod),不想让 Git 认为文件被修改:
bash
运行
git update-index --chmod=-x 文件名
或者全局忽略权限:
bash
运行
git config core.filemode false
② 临时忽略本地文件修改(assume unchanged)
文件改了,但 Git 假装看不见(适合本地配置文件、日志文件):
bash
运行
git update-index --assume-unchanged 文件名
恢复正常跟踪:
bash
运行
git update-index --no-assume-unchanged 文件名
③ 永久忽略本地配置文件(skip-worktree)
比上面那个更稳定,适合配置文件:
bash
运行
git update-index --skip-worktree 文件名
恢复:
bash
运行
git update-index --no-skip-worktree 文件名
3. 查看哪些文件被忽略了
bash
运行
git ls-files -v | grep '^[a-z]'
h= assume unchangeds= skip worktree
4. 简单总结
git update-index= 操作暂存区- 最常用:临时忽略本地文件、忽略权限变化
- 不是常规命令,属于 Git 底层工具
总结
-
git update-index是修改 Git 暂存区状态的底层命令 -
最常用:忽略权限、临时忽略本地文件修改
-
两条最实用:
bash
运行
git update-index --assume-unchanged 文件 git update-index --skip-worktree 文件