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?