What does the “at” @ sign/symbol/character mean in Git?

前端 未结 1 992
春和景丽
春和景丽 2020-12-08 07:04

The at-sign @ is often used in git to specify revisions in different ways. For example,

  1. @{} specifies the r

1条回答
  •  鱼传尺愫
    2020-12-08 07:25

    As of Git version 1.8.5, the at-sign @, without a leading branch/reference name and ordinal {n} suffix like HEAD@{1} and master@{1}, is just a synonym/alias/shortcut for the special Git reference HEAD:

    Instead of typing four capital letters "HEAD", you can say "@" now, e.g. "git log @".

    So for these commands

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

    you can simply substitute the first occurrence of @ with HEAD (or head if using Windows or OS X)

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

    So what does HEAD mean? As explained by the official Linux Kernel Git documentation for specifying Git revisions, HEAD is a special shortcut reference for the commit that you currently have checked-out as your working copy (or in Git terms, your "working tree"):

    HEAD names the commit on which you based the changes in the working tree.

    You can also read these other Stack Overflow questions on what the special reference HEAD means:

    1. HEAD and ORIG_HEAD in Git.
    2. What is git HEAD, exactly?.

    VonC also found interesting information about why @ was chosen as a shortcut for head in this Stack Overflow answer (the last section at the bottom).

    0 讨论(0)
提交回复
热议问题