git从常规哈希中获取短哈希

Ome*_*gan 40 git github

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

cex*_*yat 60

您可以得到的最短SHA1的长度为4. Rev. parse将默认使用选项为您提供7位数的SHA1 :

git rev-parse --short 921103db8259eb9de72f42db8b939895f5651489
921103d
Run Code Online (Sandbox Code Playgroud)

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

git rev-parse --short=4 921103db8259eb9de72f42db8b939895f5651489
92110
Run Code Online (Sandbox Code Playgroud)

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

  • 不,它会找到最短的SHA1,但仍然是一个独特的.正如您在我的示例中所看到的,即使我指定长度为4,SHA1的长度也为5. (10认同)
  • 未来的提交可能会变得模棱两可. (5认同)
  • 但如果你指定它有多短,你可能会损害明确性,我是对的吗? (2认同)

Ome*_*gan 6

$ git rev-parse --short 1a6f39665adf05810f70b37ef6470bbcf61fcd38
1a6f396
Run Code Online (Sandbox Code Playgroud)

  • 这种极简主义的回答问题的方法有一些值得一提的地方。我发现它比接受的答案更简单。 (2认同)