Model gałęzi GIT jest uważany za jego najmocniejszą cechę. Sposób w jaki GIT obsługuje gałęzie jest bardzo lekki co umożliwia niemal natychmiastowe tworzenie gałęzi oraz przełączanie między nimi. GIT przechowuje dane jako zestaw migawek. Każdy zapis zmian jest wskaźnikiem na migawkę i  zawiera metadane oraz wskaźnik na główne drzewo projektu, co w razie potrzeby umożliwi odtworzenie migawki. Domyślna nazwa gałęzi GITa to master i wskazuje ona ostatni zatwierdzony zestaw zmian. Tworzenie nowej gałęzi odbywa się za pomocą polecenia:

> git branch <nazwa_gałęzi>

Przykładowo utwórzmy gałąź o nazwie testbranch:

> git branch testbranch

Polecenie to tworzy nowy wskaźnik na aktualny zestaw zmian lecz nadal pozostaje na gałęzi master. Wskaźnikiem miejsca w którym aktualnie się znajdujemy jest HEAD. Aby przełączyć się na nową gałąź należy użyć polecenia:

> git checkout <nazwa_gałęzi>

Przełączenie na naszą nową gałąź wygląda więc tak:

> git checkout testbranch

checkout Wskaźnik HEAD zostaje teraz tak zmieniony, że wskazuje na nową gałąź. Dokonajmy teraz zmian na nowej gałęzi i zatwierdźmy zmiany:

> echo "dopisz na końcu gałęzi testbranch" >> GitTutorial1.txt
> git commit -a -m "Zapis zmian w gałęzi testbranch"

Powrót do głównej gałęzi odbywa się za pomocą polecnia:

> git checkout master

Polecenie to przesuwa wskaźnik HEAD na gałąź MASTER i przywraca pliki w katalogu roboczym do stanu na jaki wskazuje MASTER. Gałęzie GIT są plikami zawierającymi 40 znaków sumy kontrolnej SHA-1 zestawu zmian na który wskazują. Dzięki takiej prostocie są łatwe w tworzeniu, scalaniu i usuwaniu. W większości innych systemów wersji w grę wchodzi kopiowanie całej struktury. Aby scalić zmiany z różnych gałęzi należy użyć polecenia:

> git merge <nawa_gałęzi>

W naszym przypadku będzie to polecenie:

> git merge testbranch

Niepotrzebne gałęzie usuwamy za pomocą polecenia:

> git branch -d <nazwa_gałęzi>

Czyli usunięcie gałęzi testbranch odbywa się za pomocą polecenia:

> git branch -d testbranch