【发布时间】:2012-07-09 09:05:31
【问题描述】:
我在 bitbucket 中提交并推送了一个太大的文件,我已在本地删除它,再次提交并推送。但是在站点 bitbucket 上,存储库的大小仍然太大。
【问题讨论】:
标签: git version push commit bitbucket
我在 bitbucket 中提交并推送了一个太大的文件,我已在本地删除它,再次提交并推送。但是在站点 bitbucket 上,存储库的大小仍然太大。
【问题讨论】:
标签: git version push commit bitbucket
听起来您在删除文件的位置创建了一个 new 提交。这意味着该文件仍然存在于上一次提交中。
你需要做的是重写历史。假设两个最新提交正在删除和添加该文件,您可以执行以下操作:
git reset --hard HEAD~2
git push --force
这将删除两个最新的提交,然后将其强制推送到 bitbucket。如果这无助于减少站点,您需要联系 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 替换为您要删除的文件的名称。在此之后您还需要执行强制推送。
【讨论】: