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

如何取消跟踪文件但不将其从上游仓库移除?

当然没问题!我来帮你一步步修正这个问题——先把上游仓库的文件恢复回来,再设置本地不再跟踪它的变更,完全符合你的需求。

第一步:恢复上游仓库的文件

你之前的推送操作已经把文件从上游删掉了,所以首先得把它恢复回去:

  1. 恢复本地文件:找到删除文件之前的那个提交(如果删除是上一次提交,直接用HEAD~1即可),执行命令把文件拉回本地:
    git checkout HEAD~1 -- "你的目标文件名"
    
    执行后,本地就会重新出现这个文件了。
  2. 撤销删除提交并推回上游:用git revert生成一个新的提交来恢复文件,这种方式不会修改历史记录,更安全:
    git revert HEAD
    git push
    
    完成这两步后,上游仓库就会重新保留这个文件了。
第二步:设置本地不再跟踪文件变更

现在要实现「本地保留文件,但Git不再监控它的修改,同时上游文件保持不变」,有两种常用方法:

方法一:.gitignore + skip-worktree(推荐)

  1. 把目标文件名添加到项目根目录的.gitignore文件中:
    # 忽略目标文件,避免后续误提交
    你的目标文件名
    
  2. 执行以下命令,让Git跳过这个文件的工作区检查:
    git update-index --skip-worktree "你的目标文件名"
    
    之后你修改本地文件时,Git不会把它标记为变更,也不会在提交时包含它。

方法二:仅用skip-worktree(适合不想修改.gitignore的场景)

直接执行以下命令即可:

git update-index --skip-worktree "你的目标文件名"

这个命令会让Git在检查差异时忽略该文件的本地修改,同样能达到「本地不跟踪、上游文件保留」的效果。

补充小提示

如果之后你想恢复跟踪这个文件,只需要执行:

git update-index --no-skip-worktree "你的目标文件名"

另外一定要注意:不要再执行git rm --cached后提交,那样会再次把文件从上游仓库删除,这正是你之前踩的坑~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:03:02