54 votes

Que fait `git checkout ...`?

J'écris parfois accidentellement git checkout ... , ce qui me met dans un état de tête détachée. Je me demandais pourquoi. Voici le "point histoire":

 > git checkout .
# checks out current directory
> git checkout ..
# Checks out parent directory, if in repository.
> git checkout ...
# Puts into detached head state?
> git checkout ....
error: pathspec '....' did not match any file(s) known to git.
 

48voto

larsks Points 23184

C'est une forme dégénérée de cette syntaxe, décrite dans la page de manuel gitrevisions(7) :

    <rev1>...<rev2>
       Include commits that are reachable from either <rev1> or <rev2> but
       exclude those that are reachable from both. When either <rev1> or
       <rev2> is omitted, it defaults to HEAD.
 

Notez que le dernier bit, "Lorsque <rev1> ou <rev2> est omis, sa valeur par défaut est HEAD". Cela signifie que l'écriture ... équivaut à HEAD...HEAD . Utilisé dans git checkout cela aboutit à l'évaluation de l'ID de validation de HEAD. C'est-à-dire que vous ne faites que:

 git checkout HEAD^{commit}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X