Il devrait vous donner quelque chose comme ceci:
$ git log cee157
error: short SHA1 cee157 is ambiguous.
error: short SHA1 cee157 is ambiguous.
fatal: ambiguous argument 'cee157': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Je viens de tester cela sur un vrai dépôt Git, par la constatation s'engage avec des doublons de préfixes comme ceci:
git rev-list master | cut -c-4 | sort | uniq -c | sort -nr | head
Cela prend la liste de révisions en master
, découpe les 4 premiers caractères et jette le reste, comptez le nombre de doublons et de les trier numériquement. Dans un relativement petit référentiel de ~1500 commet j'ai trouvé pas mal de révisions avec une commune de 4 chiffres préfixe. J'ai choisi un code de 4 chiffres préfixe parce que semble être la plus courte durée légale pris en charge par Git. (Ne fonctionne pas avec les 3 chiffres ou moins, même si c'est pas ambigu.)
Btw, ce n'était pas une faute de frappe, je ne sais pas pourquoi le message d'erreur à propos ambigus SHA1 apparaît deux fois, quel que soit le nombre de doublons de SHA1 (essayé avec 2 et 3):
error: short SHA1 cee157 is ambiguous.
error: short SHA1 cee157 is ambiguous.
( stderr
. En fait l'ensemble de la production est en stderr
, rien que sur stdout
.)
Testé sous Windows:
$ git --version
git version 1.8.1.msysgit.1
Je pense qu'il est sûr de dire que si votre version est >= 1.8.1, Git va vous avertir en cas de doublons. (Il refusera de fonctionner avec des doublons.) Je suppose que beaucoup des versions plus anciennes travaillé de cette façon.
Mise à JOUR
Lors de l'essai de cela, vous avez besoin d'un minimum de 4 chiffres SHA1, en raison de l' int minimum_abbrev = 4
dans l'environnement.c. (Merci @devnull de remarquer qu'à l'extérieur!)