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

问题描述:

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

听起来就像你创建了一个新的提交你删除文件的地方。这意味着该文件仍然存在于以前的提交中。

你需要做的是改写历史。假设两个最新提交的删除和添加该文件,你可以做到以下几点:

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

这将删除的两个新的提交,然后用力按压它到位桶。如果这不利于减少站点,则需要联系bitbucket支持,以便他们可以在远程存储库上运行git gc以实际摆脱已删除的提交/文件。

如果你只是想删除指定文件没有的摧毁整个提交,你可以使用git-filter-branch作为explained in the GitHub docs(它不是GH-专用)做到这一点:

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

显然,你需要更换THE_FILE用你想要删除的文件的名字。在此之后,您还需要执行强制推送。