The at-sign @
is often used in git to specify revisions in different
ways. For example,
<ref>@{<date>}
specifies the reference at its state on<date>
.Example:
git diff master@{yesterday} master
.<ref>@{<n>}
specific the reference at its nth prior state.Example:
git diff master@{1} master
.@{-<n>}
specifies the nth previously checked-out branch before the current one.Example:
git checkout @{-5}
.<ref>@{upstream}
specifies the upstream branch for the reference.Example:
git diff master@{upstream} master
.
However, the @
is being used in other ways in git commands too, like
git rebase -i @~4
git log @^^..@
What does the at-sign @
mean in those examples?