The at-sign @ is often used in git to specify revisions in different
ways. For example,
@{ specifies the r
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:
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).