【问题标题】:Removing large files from git从 git 中删除大文件
【发布时间】:2019-12-19 16:01:54
【问题描述】:

这是我之前的帖子here 的后续。 我正在尝试删除我提交给 git 的大文件。根据我之前帖子中给出的建议,我尝试了

git filter-branch --force --index-filter "git rm --cached --ignore-unmatch folder/Unconfirmed 866711.crdownload" --prune-empty --tag-name-filter cat -- --all

按照上述命令,我尝试推送所有更改

git push origin --force --all

但是,我遇到了在使用 filter-branch 之前显示的相同错误

remote: error: File folder/Unconfirmed 866711.crdownload is 486.30 MB; this exceeds GitHub's file size limit of 100.00 MB

或者,我也尝试过

git add --all

git filter-branch -f --index-filter "git rm --cached --ignore-unmatch folder/Unconfirmed 866711.crdownload" HEAD

但是,我得到以下信息

Cannot rewrite branches: Your index contains uncommitted changes.

我不确定我是否错过了任何命令或标志。有什么建议吗?

【问题讨论】:

    标签: git github github-for-windows


    【解决方案1】:

    无法重写分支:您的索引包含未提交的更改。

    您的工作目录中有未提交的更改,即为提交暂存的更改(检查git status 输出)。如果您愿意,可以提交这些更改,或者在执行filter-branch 命令后使用stashapply 保留这些未提交的更改。

    如果您不想要未提交的更改,则可以执行硬重置。

    git reset --hard HEAD
    


    正如下面评论中提到的@torek和GitHub帮助page,不建议在filter-branch之前使用stash

    警告:如果您在存储更改后运行 git filter-branch,您 将无法使用其他存储命令检索您的更改。 在运行 git filter-branch 之前,我们建议取消隐藏任何更改 你已经做到了。

    因此,如果您想保留未提交的更改,请提交更改。然后继续使用filter-branch 命令。


    您的filter-branch 命令缺少单引号(以说明要删除的文件名中的空格)
    git filter-branch -f --index-filter "git rm --cached --ignore-unmatch 'folder/Unconfirmed 866711.crdownload'" HEAD
    

    【讨论】:

    • 我建议不要使用git stashgit filter-branch。 filter-branch 命令可以对所有的 ref 进行操作,包括 stash ref,并且可以在进程中销毁 stash。
    • @torek,是否可以排除 stash ref 被 filter-branch 覆盖?
    • 是的:如果您指定要重写的引用列表(例如,git filter-branch <filter info> -- branchA branchB),它只会重写那些分支。但我认为只提交,然后过滤,然后退出最后一次提交更容易,更实用。
    • @SaurabhPBhandari 正如你所建议的,我提交了所有更改,然后是过滤器分支。我得到以下信息,WARNING: Ref 'refs/heads/master' is unchanged WARNING: Ref 'refs/remotes/origin/master' is unchanged WARNING: Ref 'refs/stash' is unchanged。你能建议下一步应该做什么吗?我可以将更改推送到存储库吗?
    • @Natasha,警告表明您的命令没有更改任何参考,即它没有成功。
    猜你喜欢
    • 2019-09-20
    • 2014-06-19
    • 2020-03-20
    • 1970-01-01
    • 1970-01-01
    • 2011-01-20
    • 2017-09-18
    • 2012-09-10
    • 1970-01-01
    相关资源
    最近更新 更多