You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何忽略已提交至Git仓库的文件,同时保留其在仓库中的记录?

解决Git保留历史但忽略已追踪文件后续修改的问题

当然可以实现,核心原因是你之前只加了.gitignore,但Git的.gitignore只对未被仓库追踪的文件生效,已经被纳入版本控制的文件,就算写进.gitignore,Git还是会继续监控它的修改。

要达到「保留历史记录,但后续修改不再被Git识别」的需求,你可以用Git的update-index命令来标记这些文件:

具体操作

  • 忽略单个文件:
    git update-index --assume-unchanged <你的文件路径>
    
  • 忽略整个目录下的所有已追踪文件:
    git update-index --assume-unchanged $(git ls-files <你的目录路径>)
    

执行完上面的命令后,Git就会「假装」这些文件没有任何变动,git status不会再显示它们的修改,也无法被暂存和提交,同时仓库里的历史记录完全保留。

恢复追踪的方法

如果之后需要重新让Git监控这些文件的修改,执行:

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

补充说明

如果你的场景是本地修改和远程分支的文件内容不一致,还可以用--skip-worktree参数,效果类似但更适合这种本地有自定义修改的场景:

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

恢复的话用--no-skip-worktree即可。

内容的提问来源于stack exchange,提问作者Ero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 03:22:05