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

wou*_*vdd 4 git push commit version bitbucket

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

Thi*_*ter 8

听起来你创建了一个删除文件的提交.这意味着该文件仍然存在于先前的提交中.

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

git reset --hard HEAD~2
git push --force
Run Code Online (Sandbox Code Playgroud)

这将删除两个最新的提交,然后强行将其推送到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
Run Code Online (Sandbox Code Playgroud)

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