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

如何排除指定目录与文件 避免其被推送到Git远程仓库

Git 永久排除指定文件/文件夹不推送远程仓库的操作方法

问题根源

.gitignore 和 .git/info/exclude 仅对从未被Git纳入版本跟踪的文件生效。
你配置后不生效,是因为要排除的目标路径(比如e2e文件夹)之前已经被提交到Git仓库、处于被跟踪状态;而node_modules能正常被忽略,是因为它从项目初始化开始就没被提交过,始终是未跟踪状态。

操作步骤

  • 第一步:将目标路径从Git跟踪缓存中移除(不会删除本地实际文件)
    排除整个文件夹时执行递归移除命令,以e2e目录为例:
    git rm -r --cached e2e/
    
    如果要排除单个文件,去掉-r参数即可:
    git rm --cached 你的文件相对路径
    
  • 第二步:配置忽略规则
    根据需求二选一即可:
    • 规则需要对所有仓库协作者生效:将目标路径写入项目根目录的.gitignore文件,例如新增一行e2e/(路径末尾加斜杠代表匹配整个目录)
    • 规则仅在你本地生效、不需要同步给其他人:将目标路径写入本地仓库的.git/info/exclude文件,语法和.gitignore完全一致
      配置完成后可以执行校验命令确认规则命中:
    git check-ignore -v e2e/
    
    命令会输出命中的忽略规则位置和内容,方便排查路径写错、规则不生效的问题。
  • 第三步:提交本地变更
    git commit -m "chore: stop tracking e2e directory"
    
    提交完成后,Git就不会再跟踪目标路径下的任何变更,效果和本地node_modules目录完全一致。
  • 第四步:推送到远程仓库
    git push
    
    推送完成后,远程仓库中的对应目标路径会被删除,后续你在本地对该路径的所有修改都不会被提交、推送到远程。

注意事项

其他协作者拉取这次提交时,如果他们本地的目标路径处于Git跟踪状态,拉取后本地对应文件会被删除。如果需要保留本地文件,协作者需要提前备份,或者先在本地执行同样的git rm -r --cached 目标路径命令后再拉取更新。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 11:33:40