代码之家  ›  专栏  ›  技术社区  ›  Hadi Sharghi

通过删除提交范围清除旧的git repo

  •  1
  • Hadi Sharghi  · 技术社区  · 8 年前

    我开始做一个项目,有一个很老很大的回购,大约 1.1GB

    我已经从原来的repo复制了一个完整的repo,并将其命名为另一个repo。 original-repo

    项目将只在特定的部分继续,而所有其他部分都将被弃用,因此初始提交的所有提交和分支( 7e48a70 )特定的承诺( 222b1f3 )是无用的。为了使回购干净,我需要删除除master之外的所有承诺和所有分支,并重写工作回购的历史。

    我搜索和阅读了很多主题,使用了许多脚本和命令,安装了一些GitGUI应用程序,但无法删除提交和分支以清除和减少repo的大小。回购规模仍在 1.1千兆 .

    任何帮助都将不胜感激。

    1 回复  |  直到 8 年前
        1
  •  0
  •   Shravan40    8 年前

    如果要保留提交日志,请尝试

    git revert "HEAD^"
    

    否则,您可以尝试软/硬重置

    git reset --soft "HEAD^"
    
    git reset --hard "HEAD^"
    

    请阅读 Difference between soft, mixed and hard reset 如果有任何混乱。

    也可以使用删除远程分支

    git push origin --delete <branch_name>
    

    编辑

    您可以使用

    git revert commit_id1..commit_id2