Подтвердить что ты не робот

Что означает символ "at" @sign/symbol/character в Git?

Знак at @ часто используется в git to указывать версии в разных пути. Например,

  • <ref>@{<date>} указывает ссылку в ее состоянии на <date>.

    Пример: git diff [email protected]{yesterday} master.

  • <ref>@{<n>} задает ссылку в своем состоянии n th.

    Пример: git diff [email protected]{1} master.

  • @{-<n>} указывает ранее выделенную ветвь n th текущий.

    Пример: git checkout @{-5}.

  • <ref>@{upstream} указывает ветку восходящего потока для ссылки.

    Пример: git diff [email protected]{upstream} master.

Однако, @ используется другими способами в командах git, например

git rebase -i @~4
git log @^^[email protected]

Что означает знак at @ в этих примерах?

4b9b3361

Ответ 1

Начиная с Git версии 1.8.5, знак at @, без имени ведущей ветки/ссылки и порядкового номера {n}, как [email protected]{1} и [email protected]{1}, является просто синонимом/псевдонимом/ярлыком для специальной ссылки Git HEAD:

Вместо ввода четырех заглавных букв "HEAD" вы можете теперь сказать "@", например. "git log @".

Итак, для этих команд

git rebase -i @~4
git log @^^[email protected]

вы можете просто заменить первое вхождение @ на HEAD (или HEAD при использовании Windows или OS X)

git rebase -i HEAD~4
git log HEAD^^..HEAD

Итак, что означает HEAD? Как объяснено официальной версией официальной документации ядра Linux Git для указания Git ревизий, HEAD - специальная ссылка на ярлык для фиксации, которая вы в настоящее время имеете выписку в качестве рабочей копии (или в Git условиях, вашем "рабочем дереве" ):

HEAD называет фиксацию, на которой вы основываете изменения в рабочем дереве.

Вы также можете прочитать эти другие вопросы о переполнении стека, что означает специальная ссылка HEAD:

VonC также нашел интересную информацию о том, почему @ был выбран в качестве ярлыка для HEAD в этом ответе на переполнение стека (последний раздел внизу).