Que fait `git checkout...'?
J'écris parfois accidentellement git checkout ...
, ce qui me met dans un État de tête détaché. 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.
54
demandé sur
Chris Jefferson
2017-09-07 19:31:08
1 réponses
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, il est par défaut HEAD". Cela signifie que l'écriture ...
est équivalent à HEAD...HEAD
. Lorsqu'il est utilisé dans git checkout
, cela finit par évaluer l'id de validation de HEAD. C'est-à-dire que vous faites juste:
git checkout HEAD^{commit}
48
répondu
larsks
2017-09-08 01:04:56