你不知道的Git忽略文件新方式

339 阅读2分钟

正常来说

我们忽略不提交的文件都是配置.gitignore 

或者就是在IDE里将不提交的文件放入其他的变更列表

但是两种方式在某些时候都并不想使用

因为我仅仅只是想让这个文件的更改只运用在我本地环境而已

例如配置文件 (打个比方)

配置忽略吧,以后可能还会加新的东西

不配置忽略吧,不小心提上去又会影响到同事的本地环境

放入变更列表吧,每次看着都难受,变更分支还得git stash

然后我就去了解了一下....

在 Git 中实现仅本地忽略文件修改,且不修改 .gitignore 文件,可通过以下两种方法实现:


方法一:标记文件为“假设未修改”

  1. 执行命令
    在终端输入:

    git update-index --assume-unchanged <文件路径>
    

    此命令会告知 Git 将该文件视为未修改状态,后续变更不会显示在 git status 中‌。

  2. 取消忽略
    若需恢复跟踪,执行:

    git update-index --no-assume-unchanged <文件路径>
    

适用场景
需临时忽略本地修改(如配置文件调试),但需手动维护忽略状态,且换仓库后需重新设置‌。


方法二:标记文件为“跳过工作树”

  1. 执行命令

    git update-index --skip-worktree <文件路径>
    

    此命令会完全跳过对文件工作树状态的检查,即使文件被修改,Git 也不会检测到变更‌。

  2. 取消忽略

    git update-index --no-skip-worktree <文件路径>
    
  3. 列出被忽略的文件

    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
    • 仅对已跟踪文件有效

最后

不管你会与否,看看有个记忆。

感谢前来了解,大家共同进步,相互分享知识。