Что делает " git checkout ..."?



Я иногда случайно пишу git checkout ..., что приводит меня в отстраненное состояние головы. Мне было интересно, почему. Вот "точечная история":



> 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.
467   1  
git

1 ответ:

это вырожденная форма этого синтаксиса, описанного в gitrevisions(7) man page:

   <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.

обратите внимание, что последний бит, " когда либо <rev1> или <rev2> опущено, по умолчанию это HEAD". Это значит, что писать ... эквивалентно HEAD...HEAD. При использовании git checkout это заканчивается оценкой идентификатора фиксации HEAD. То есть, вы просто делаете:

git checkout HEAD^{commit}

Comments

    Ничего не найдено.