【问题标题】:How to remove deleted files from git?如何从 git 中删除已删除的文件?
【发布时间】:2012-07-09 09:05:31
【问题描述】:

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

【问题讨论】:

    标签: git version push commit bitbucket


    【解决方案1】:

    听起来您在删除文件的位置创建了一个 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 替换为您要删除的文件的名称。在此之后您还需要执行强制推送。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-30
      • 2021-10-14
      • 2013-06-03
      • 1970-01-01
      • 1970-01-01
      • 2011-08-25
      相关资源
      最近更新 更多