使.git尽可能小

使.git尽可能小,git,Git,我们的一些实时网站接收自动代码更新。我希望这些自动提交(不要担心这是否合理,所有内容都经过单元测试,只有小型站点可以自动更新) 当我将repo放到实时web服务器上时,其大小变得非常大 保存本地历史中仅有一个分支的最小历史的最佳方法是什么 谢谢。您可以尝试确保服务器上的裸机回购创建了一个克隆,该克隆: 深度较浅(深度=1) 有 (以便能够推送到浅克隆 这将是: git clone -b mybranch --depth 1 /url/of/my/repo () 这将导致服务器上的git r

我们的一些实时网站接收自动代码更新。我希望这些自动提交(不要担心这是否合理,所有内容都经过单元测试,只有小型站点可以自动更新)

当我将repo放到实时web服务器上时,其大小变得非常大

保存本地历史中仅有一个分支的最小历史的最佳方法是什么


谢谢。

您可以尝试确保服务器上的裸机回购创建了一个克隆,该克隆:

  • 深度较浅(深度=1)
  • (以便能够推送到浅克隆
这将是:

git clone -b mybranch --depth 1 /url/of/my/repo
()

这将导致服务器上的git repo相当紧凑


Git 2.5(2015年第2季度)甚至支持单取提交!请参阅“

关于保持Git尽可能小的最佳方法的好建议是:

  • 确定是什么让你的git回购变得巨大。提交太多了吗?原因是二进制文件吗?你一直在重写一个巨大的文件吗

  • 不要提交二进制文件或任何更大的文本(base64编码的图像与提交标准图像的级别几乎相同)

  • 改进你的工作,只做必要的事情

  • 在服务器上的git存储库之外运行缩小/脚本(例如,如果您使用gulp/grunt,则不要提交构建过程的结果,只提交过程的一个源)

  • 如果您有很多小的修复或提交,您可以使用
    rebase
    ,偶尔重新设置分支的基础,并删除带有特定标记的所有提交(您可以
    tag
    小的提交,然后使用
    rebase
    只保留结果)

  • 使用多个git存储库和。您可以偶尔克隆/删除其中一个用于处理自动提交的存储库

  • 用于从命名树创建文件存档


  • 另一个工作流是:在您的集成服务器上使用
    git archive
    来构建要部署的提交的存档(
    tar.gz
    tar.bz2
    ),并将此存档发送到您的实时服务器(
    scp
    sftp
    rsync


    不再从生产服务器访问git,也不再使用
    .git
    目录。

    您有任何数字吗?如果您在存储库上只有一个分支,然后运行一个积极的gc来删除所有悬空对象,它应该会对存储库进行相当大的压缩。我们通常使用3个主要分支远程:dev、staging、master+a who很多功能分支。Git 2.5(2015年第2季度)支持单次获取提交!我在下面编辑了我的答案,现在引用了“”。谢谢,我现在无法验证,因为我的主机使用Git 1.7。在本地,它似乎工作得很好。