git - 默认 git log 缩写格式长度
问题描述
正如git log abbrevified format length中已经回答的那样,可以更改 git log 中 %h 的长度。但是,我的问题是默认长度存储在哪里?
我定义了一个这样的 git 别名:
hist = log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short
虽然我git hist
在两个不同的存储库中使用,一个显示 9 个字符的哈希缩写,而另一个显示 7 个字符,就像大多数其他存储库一样。
解决方案
core.abbrev
如果你设置了,Git 会读取设置。如果不是,或者如果您将其设置为文字 string auto
,则默认值是根据 Git 存储库中对象的数量动态计算近似值- 嗯,该数字的近似值,长度适合正如Lasse V. Karlsen在评论中指出的那样。
git config
文档是这样描述的:
core.abbrev
设置长度对象名称的缩写。如果未指定或设置为“auto”,则会根据存储库中打包对象的大致数量计算适当的值,希望这足以让缩写的对象名称在一段时间内保持唯一性。最小长度为 4。
你提到你有:
...两个不同的存储库,一个显示 9 个字符的哈希缩写 [vs 更常见的 7]
7 是内部计算的默认最小值(它使用近似对象计数的 log2 的粗略近似值);有 9 的那个必须比其他有更多的对象。正如文档所说,目标是生成一个即使存储库增长也仍然有效的缩写,所以如果现在估计为 9,那么现在 7 很有可能仍然有效,但到明年可能不会。
推荐阅读
- r - 将列中的唯一值更改为两个特定值之一
- java - 如何通过按下按钮重置 MDC 微调器(AutoCompleteTextview/ExposedDropdownMenu)中的选定项目
- firebase - 如何从反应原生的平面列表中选择特定项目?
- json - 如何使用 Moshi 解析 Kotlin 中的多态对象
- office-js - 回滚加载项的错误版本
- python - PyBind - Python 到 C++ 接口
- java - 创建ContraintLayout.LayoutParams对象时,为什么没有使用new关键字?
- python - 如何为 lightgbm 腌制自定义损失函数?
- python - 试图从一长串标题中分离字符串
- java - 如何使用 graphics2D 显示 1 到 10 之间的随机数?