【问题标题】:Maximum commit message size最大提交消息大小
【发布时间】:2012-04-01 18:56:09
【问题描述】:

Git 提交消息是否有大小限制? 我在网上搜索,但除了 this one 之外找不到任何相关提及。

但是,那个人没有回答我的问题。

【问题讨论】:

  • 为什么要知道大小?有什么具体的背景或原因吗?
  • 如果没有限制,您可以将 Github 的 API 用作仅追加的持久日志,并将操作保存在提交消息中作为不可变的日志条目。然后将应用程序的其余部分编码为一组数据转换:blog.confluent.io/2015/03/04/turning-the-database-inside-out-with-apache-samza/

标签: git


【解决方案1】:

https://github.com/git/git/blob/master/strbuf.hlen 字段定义为size_t。因此,在您选择的平台上,最大长度的上限至少为 size_t

【讨论】:

    【解决方案2】:

    根据经验,我认为答案是否定的。这行得通(这是一个 ~100MB 的提交消息):

    yes | head -c 100000000 | git commit -F - > /dev/null
    

    命令部分说明:

    • yes 重复 "y\n" 永远
    • head -c 100000000 只占用前 100,000,000 个字节 (~100MB)
    • git commit -F - 使用传入的提交消息提交(如果您没有暂存任何更改以提交,这将不起作用)
    • > /dev/null 隐藏命令的输出,其中包括 Git 重复返回很长的提交消息

    【讨论】:

    • 使用git commit --allow-empty -F - 进行提交而不进行任何更改。
    【解决方案3】:

    嗯,实际上,JGit 有大约 5MB 的限制。

    当然,我要问为什么有人会这样做?!特别是因为每个后续克隆都需要包含该数据。我会说,如果你超过了几个 KB,那么你真的应该质疑你的动机。

    【讨论】:

      猜你喜欢
      • 2010-09-27
      • 2014-06-13
      • 1970-01-01
      • 2010-12-15
      • 2017-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多