赞
踩
本文摘至:http://www.open-open.com/lib/view/open1328070367499.html
Git 很聪明,它能够通过你提供的前几个字符来识别你想要的那次提交,只要你提供的那部分 SHA-1 不短于四个字符,并且没有歧义——也就是说,当前仓库中只有一个对象以这段 SHA-1 开头。
例如,想要查看一次指定的提交,假设你运行 git log
命令并找到你增加了功能的那次提交:
$ git log commit 734713bc047d87bf7eac9674765ae793478c50d3
假设是 1c002dd....
。如果你想 git show
这次提交,下面的命令是等价的(假设简短的版本没有歧义):
$ git show 1c002dd4b536e7479fe34593e72e6c6c1819e53b
$ git show 1c002dd4b536e7479f
$ git show 1c002d
Git 可以为你的 SHA-1 值生成出简短且唯一的缩写。如果你传递 --abbrev-commit
给 git log
命令,输出结果里就会使用简短且唯一的值;它默认使用七个字符来表示,不过必要时为了避免 SHA-1 的歧义,会增加字符数:
$ git log --abbrev-commit --pretty=oneline
ca82a6d changed the version number
085bb3b removed unnecessary test code
a11bef0 first commit
通常在一个项目中,使用八到十个字符来避免 SHA-1 歧义已经足够了。最大的 Git 项目之一,Linux 内核,目前也只需要最长 40 个字符中的 12 个字符来保持唯一性。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。