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

如何让Web服务器Git仓库排除源文件,保留开发仓库及历史提交

移除Git远程仓库中指定文件但保留本地副本的解决方案

一、确认本地排除规则

首先确保本地仓库的文件排除规则生效,避免后续这些文件被重新提交:

  • 在本地仓库的.gitignore文件中添加以下规则(如果使用.git/info/exclude单独配置本地排除,也可继续使用该文件):
    *.fla
    *.ai
    
  • 提交这个规则变更:
    git add .gitignore
    git commit -m "Add ignore rules for .fla and .ai files"
    

二、移除已追踪文件的Git引用(保留本地文件)

使用--cached参数执行git rm,可以移除Git对这些文件的追踪,但不会删除本地的实际文件:

  • 如果文件都在当前目录,执行:
    git rm --cached *.fla *.ai
    
  • 如果文件分布在子目录中,使用递归匹配:
    git rm --cached **/*.fla **/*.ai
    
  • 提交这个变更,记录停止追踪这些文件的操作:
    git commit -m "Stop tracking .fla and .ai files"
    

三、推送到远程服务器

将变更推送到远程仓库,此时远程服务器上的.fla和.ai文件会被移除,但本地的文件会完整保留:

git push origin <你的目标分支名>

四、彻底清理远程仓库历史(可选,最大化节省存储空间)

如果需要彻底从Git历史中删除这些文件的所有版本(进一步压缩仓库体积),可以使用git filter-repo工具重写历史:

  1. 执行历史重写命令,移除所有.fla和.ai文件的历史记录:
    git filter-repo --path-glob '*.fla' --path-glob '*.ai' --invert-paths
    
  2. 强制推送到远程仓库(注意:此操作会重写远程仓库历史,团队成员需要重新克隆仓库或执行git fetch origin && git reset --hard origin/<分支名>同步):
    git push origin <你的目标分支名> --force
    
  3. 清理本地仓库的冗余对象,释放空间:
    git reflog expire --expire=now --all
    git gc --prune=now --aggressive
    

内容的提问来源于stack exchange,提问作者Bruno Costa Pinheiro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 10:55:10