从 github 上推送的代码中删除文件

Delete files from pushed code on github

我已将我的更改提交并推送到我的项目分叉副本。我还向我最初从中分叉项目的存储库提出了拉取请求。现在我必须删除我提交的文件。我应该怎么做?

如果该文件仅存在于最后一次提交中,您可以简单地删除它,修改您的提交并使用 git push --force 重写 github:

上的提交
git rm file-to-delete

git commit --amend

git push --force

如果您想从之前的几次提交中删除文件,请查看有关此主题的 github guide

特别是,您可以使用 BFG cleaner 从存储库中删除文件,包括所有提交历史记录:

bfg --delete-files file-to-be-deleted

另一种不需要在 git 之上安装任何东西的替代方法是 git filter-branch 命令:

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch file-to-be-deleted' --prune-empty --tag-name-filter cat -- --all

在本地进行更改后,您必须使用 git push --force 将它们推送到 github。

在任何情况下,您都应该将文件添加到您的 .gitignore 中,这样您以后就不会不小心再次提交它。