必须用 git 命令从暂存区和历史中明确删除已提交文件:一、git rm(加--cached保留本地)后提交推送;二、github 网页编辑页删文件并提交;三、git filter-repo 彻底清除历史记录并强制推送。

如果您希望从 GitHub 仓库中移除某个文件,但该文件已提交至远程仓库,则不能仅在本地删除后忽略提交;必须通过 Git 命令明确将其从暂存区和历史记录中移除。以下是执行文件删除的几种有效方式:
一、使用 git rm 删除已跟踪文件
此方法适用于文件仍存在于本地工作目录且已被 Git 跟踪的情况。git rm 命令会同时从工作目录和暂存区移除文件,并在下次提交时从仓库历史中删除该文件。
1、打开终端或命令行工具,进入本地仓库根目录。
2、执行命令 git rm 文件名,例如 git rm README.md。
3、若需保留本地文件仅从 Git 中移除,添加 --cached 参数:运行 git rm --cached 文件名。
4、执行 git commit -m "删除 文件名" 提交变更。
5、运行 git push origin 分支名 将删除操作同步至远程仓库。
二、通过 GitHub 网页界面直接删除文件
此方法无需本地环境,适合快速删除单个文本类文件(如 .md、.txt、.json 等),且文件未被大型二进制文件或敏感历史数据污染。
1、登录 GitHub,导航至目标仓库页面。
2、浏览并点击要删除的文件,进入其内容查看页。
3、点击右上角的铅笔图标(Edit this file)。
4、向下滚动至页面底部,点击 Delete this file 按钮。
5、在提交表单中填写提交信息,确认选择目标分支(通常为 main 或 master),点击 Commit changes。
三、使用 git filter-repo 彻底清除文件历史记录
当文件曾被提交但已不再需要保留在任何历史版本中(例如误传了密钥、大体积文件或隐私数据),需从所有 commit 中彻底剥离该文件,此时 git rm 不足以完成清理,必须重写提交历史。
1、确保已安装 git-filter-repo 工具(非 Git 内置,需单独安装)。
2、在本地克隆一个全新副本(避免污染原工作区):git clone --bare https://github.com/用户名/仓库名.git。
3、进入 bare 仓库目录,运行:git filter-repo --path 文件名 --invert-paths。
4、强制推送清洗后的历史到远程:git push --force origin --all 和 git push --force origin --tags。
5、通知所有协作者重新克隆仓库,因历史已被完全重写。










