【问题标题】:git get short hash from regular hashgit 从常规哈希中获取短哈希
【发布时间】:2013-05-01 01:43:30
【问题描述】:

我有一个常规的长 SHA-1 哈希字符串。我想获得最短的明确 SHA-1 哈希字符串版本。也就是说,我会通过使用git log -1 --pretty=format:%h 得到一个,假设长哈希是指最后一次提交。

【问题讨论】:

标签: git github


【解决方案1】:
$ git rev-parse --short 1a6f39665adf05810f70b37ef6470bbcf61fcd38
1a6f396

【讨论】:

  • 对于这种极简主义的回答问题方法,有话要说。我发现它比公认的答案更直接。
  • 在答案中添加大量废话会让你看起来更聪明。
【解决方案2】:

您可以获得的最短 SHA1 的长度为 4。默认情况下,Rev 解析将为您提供 7 位数的 SHA1,使用 short 选项:

git rev-parse --short 921103db8259eb9de72f42db8b939895f5651489
921103d

您必须为 short 选项指定 4 以获得最短的明确 SHA1:

git rev-parse --short=4 921103db8259eb9de72f42db8b939895f5651489
92110

您也可以在core.abbrev 配置变量中进行设置。

【讨论】:

  • 但是如果你指定它有多短,你可能会损害明确性,对吗?
  • 不,它会找到最短的 SHA1,但仍然是唯一的。正如您在我的示例中看到的,即使我指定长度为 4,SHA1 的长度也为 5。
  • 未来的提交可能会变得模棱两可。
  • 对我来说,它默认返回 9 个字符
  • 如果你想保存提交 id 以备将来使用,你真的应该使用比最短的更长的。即使是很小的存储库也会很快积累大量重复的 4 字符提交 ID。我编写了一个脚本来测试这一点,在仅仅几百次提交之后,通常会有几个 4 字符重复。
猜你喜欢
  • 2010-12-19
  • 2011-08-07
  • 1970-01-01
  • 2016-07-22
  • 1970-01-01
  • 2012-02-19
  • 1970-01-01
  • 2012-08-17
  • 1970-01-01
相关资源
最近更新 更多