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

如何在Git中忽略文件本地改动但不将其从仓库中移除

解决方案:使用Git的skip-worktree标记

这是Git原生支持的功能,完全匹配「默认忽略文件本地改动,仅明确告知时才提交」的需求,不需要额外编写钩子,操作逻辑简单。

操作步骤

  • 针对需要忽略本地改动的文件,执行命令设置标记:
git update-index --skip-worktree <文件路径>
# 对应你的示例就是:
git update-index --skip-worktree app.config

设置完成后,Git会默认忽略该文件的所有本地修改:git status不会展示改动,切换分支、执行cherry-pick、pull等操作时不会触发冲突,也不需要手动stash这部分改动,本地修改会全程保留。

  • 当你确实需要修改该文件的基准版本(要提交到远程仓库的公共版本)时,先临时关闭忽略标记:
git update-index --no-skip-worktree <文件路径>

之后正常修改文件、执行add/commit/push流程即可,提交完成后再重新执行--skip-worktree命令恢复忽略规则即可。

补充说明

  • 如果要查看当前仓库中已设置skip-worktree标记的文件列表,执行:
git ls-files -v | grep '^S'

输出结果中前缀带S的就是已设置忽略本地改动的文件。

  • 注意不要和assume-unchanged标记混淆:assume-unchanged是Git为提升性能给大量无变动文件设置的临时标记,Git可能在部分场景下主动重置该标记;而skip-worktree是专门处理用户主动要忽略本地改动的场景,标记会永久保留,完全匹配你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:24:04