正常来说
我们忽略不提交的文件都是配置.gitignore
或者就是在IDE里将不提交的文件放入其他的变更列表
但是两种方式在某些时候都并不想使用
因为我仅仅只是想让这个文件的更改只运用在我本地环境而已
例如配置文件 (打个比方)
配置忽略吧,以后可能还会加新的东西
不配置忽略吧,不小心提上去又会影响到同事的本地环境
放入变更列表吧,每次看着都难受,变更分支还得git stash
然后我就去了解了一下....
在 Git 中实现仅本地忽略文件修改,且不修改 .gitignore 文件,可通过以下两种方法实现:
方法一:标记文件为“假设未修改”
-
执行命令
在终端输入:git update-index --assume-unchanged <文件路径>此命令会告知 Git 将该文件视为未修改状态,后续变更不会显示在
git status中。 -
取消忽略
若需恢复跟踪,执行:git update-index --no-assume-unchanged <文件路径>
适用场景
需临时忽略本地修改(如配置文件调试),但需手动维护忽略状态,且换仓库后需重新设置。
方法二:标记文件为“跳过工作树”
-
执行命令
git update-index --skip-worktree <文件路径>此命令会完全跳过对文件工作树状态的检查,即使文件被修改,Git 也不会检测到变更。
-
取消忽略
git update-index --no-skip-worktree <文件路径> -
列出被忽略的文件
git ls-files -v | findstr '^S'注:如果是非windows 则:git ls-files -v | grep '^S'
适用场景
需长期忽略本地修改(如 IDE 生成文件),且希望彻底屏蔽变更检测。
总结
-
两种方法对比
方法 特点 推荐场景 --assume-unchanged仅标记文件为未修改,Git 仍可能偶尔检测到变更 临时调试或短期忽略 --skip-worktree完全跳过文件状态检查,忽略更彻底 长期忽略或频繁变更的文件 -
注意事项
- 两种方法均为本地配置,不会影响
.gitignore或远程仓库。 - 以上指的 <文件路径> 是绝对路径,如:
E:\shop\src\main\resources\application.yml - 仅对已跟踪文件有效
- 两种方法均为本地配置,不会影响
最后
不管你会与否,看看有个记忆。
感谢前来了解,大家共同进步,相互分享知识。