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

时间:2012-07-09 22:15:47

标签: git version push commit bitbucket

我已经提交并在bitbucket中推送了一个太大的文件,我已经在本地删除了它,已经提交并再次推送。但是在网站bitbucket上,存储库的大小仍然太大。

1 个答案:

答案 0 :(得分:8)

听起来您在删除文件时创建了提交。这意味着该文件仍然存在于上一次提交中。

您需要做的是重写历史记录。假设两个最新的提交正在删除并添加该文件,您可以执行以下操作:

git reset --hard HEAD~2
git push --force

这将删除两个最新的提交,然后强行将其推送到bitbucket。如果无法帮助减少站点,则需要联系bitbucket支持,以便他们可以在远程存储库上运行git gc以实际删除已删除的提交/文件。

如果你只想删除给定的文件而不用中断整个提交,你可以使用git-filter-branch作为explained in the GitHub docs(它不是特定于GH的):< / p>

git filter-branch --index-filter 'git rm --cached --ignore-unmatch THE_FILE' \
--prune-empty --tag-name-filter cat -- --all

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