【问题标题】:Git remove file from all commitsGit 从所有提交中删除文件
【发布时间】:2017-11-27 20:13:47
【问题描述】:

我犯了一个“小”错误,并在我的本地存储库中添加了一个“小”(>100MB) 文件。

两次提交后我试图推送到 github 中的远程仓库,限制为 100MB。

我可以使用git rm --cached 从我当前的提交中删除该文件,但它仍在之前的提交中。

如何从所有提交中删除文件? 我试过this answer about git filter-branch,但不适合我的。

【问题讨论】:

  • 过滤器分支是去 AFAIK 的方式。您还可以进行交互式变基,从初始提交和所有后续提交中删除该大文件。
  • 谢谢@TimBiegeleisen 我不知道为什么,但它对我不起作用,无论如何我发现stackoverflow.com/questions/307828/… 的答案很棒。
  • 这个答案会对你有所帮助。 stackoverflow.com/a/28173964/94311 。基本上你检查出错误的提交,删除不需要的文件,重新设置所有其他提交

标签: git github git-rm


【解决方案1】:

您可以通过交互式 rebase 更改最后 3 次提交。

git rebase -i HEAD~3

并将提交更改为“编辑”。

见https://help.github.com/articles/about-git-rebase/

【讨论】:

    【解决方案2】:

    我会软重置 3 个最新提交。 然后删除“小”文件。 然后将所有更改放入 1 个新提交中。

    我认为这不是很理想,但解决了问题,因为您还没有进行太多额外的提交。

    【讨论】:

    • 不能再同意了...有时 GIT 中的系统解决方案过于复杂。
    猜你喜欢
    • 2012-09-10
    • 2021-12-31
    • 1970-01-01
    • 2021-02-24
    • 2018-04-04
    • 2016-04-17
    • 2011-06-02
    • 2014-06-27
    相关资源
    最近更新 更多