Special Refs
Istnieje grupa specjalnych referencji (tzw. Special Refs) tworzonych przez git automatycznie. Są to:
- HEAD - bieżący branch/commit
- FETCH_HEAD - ostatnio pobrany (poleceniem git fetch) branch ze zdalnego repozytorium
- ORIG_HEAD - referencja do HEAD tworzona na potrzeby drastycznych zmian w HEAD
- MERGE_HEAD - commit (lub commity) merge'owane za pomocą polecenia git merge
- CHERRY_PICK_HEAD - commit, który wskazujemy przy poleceniu git cherry-pick
Każda z powyższych referencji jest plikiem w katalogu .git zawierająca jedną z poniższych zawartości:
- SHA1 commitu, na który wskazuje
- link symboliczny na inny ref - np. refs/heads/master
Relatywne referencje
Git posiada dwa mechanizmy relacyjnego określania referencji. Pierwszym z nich jest ~. Jest to znak oznaczający "n-przodków wskazanego commitu". Przykładowo polecenie
git show HEAD~2
Pokaże zawartość 3 commitu (licząc od najnowszego).
Znak ~ odwołuje się zawsze do pierwszego rodzica (liniowa historia). Kiedy zaczynamy merge'ować nasze branche - jeden commit może mieć więcej niż jednego rodzica. W takich przypadkach potrzebne jest skorzystanie ze znaku ^.