如何从git中删除已删除的文件?

4

我在Bitbucket上提交并推送了一个太大的文件,然后在本地将其删除,再次提交和推送。但是在Bitbucket网站上,仓库的大小仍然太大。

1个回答

8
听起来你创建了一个新的提交,在其中删除了文件。这意味着该文件仍然存在于之前的提交中。
你需要做的是重写历史记录。假设最新的两个提交是删除和添加该文件,你可以执行以下操作:
git reset --hard HEAD~2
git push --force

这将删除最新的两个提交,然后强制将其推送到bitbucket。如果这不能帮助减少网站,则需要联系bitbucket支持,以便他们在远程存储库上运行git gc,以实际摆脱已删除的提交/文件。
如果您只想删除给定的文件,而不是整个提交,则可以使用git-filter-branch来完成,如GitHub文档中所述(它不是GH特定的)。
git filter-branch --index-filter 'git rm --cached --ignore-unmatch THE_FILE' \
--prune-empty --tag-name-filter cat -- --all

显然,您需要将THE_FILE替换为您想要删除的文件的名称。此后,您还需要执行强制推送。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接