Git:从存储库中覆盖或擦除大文件(存档)?

时间:2016-11-12 05:07:31

标签: git archive

我有一个存储库,它使用当前使用shell脚本下载和编译的第三方代码。这可行,但有时镜像很慢或无法访问。我(因为第三方代码只是OpenSource项目)将它与我的代码捆绑在一起会更容易。

但是,我不希望我的git存储库随着时间的推移变得很大(就像通常那样,当你包含每次更新它时存储的大型二进制文件时)。

有没有办法从git存储库中删除.tar.gz(或类似的)档案?

或者,一旦它过时,我可以以某种方式覆盖foo.tar.gz吗?因此它只消耗最新版本使用的内存(因此删除了较旧版本的文件)?

1 个答案:

答案 0 :(得分:0)

  
    

有没有办法从git存储库中删除.tar.gz(或类似的)档案?

  

<强> How to remove big files from the repository

有几种方法可以做到:

  • 您可以使用git filter-branch

  • BFG Repo-Cleaner

      

    <强> BFG Repo-Cleaner

         

    git-filter-branch的替代方案。

         

    BFG是git-filter-branch的一种更简单,更快速的替代方法,用于清除Git存储库历史记录中的错误数据

         

    删除疯狂的大文件
      删除密码,凭证和&amp;其他私人数据

    示例(来自官方网站)

      

    在所有这些示例中,bfg是java -jar bfg.jar的别名。

     # Delete all files named 'id_rsa' or 'id_dsa' :
     bfg --delete-files id_{dsa,rsa}  my-repo.git
    
  • GIT LFS (large file storage)

    enter image description here