git branch

Tworzy, wyświetla lub usuwa gałęzie.

git branch to scyzoryk do zarządzania gałęziami w repozytorium Git. Bez żadnych argumentów po prostu wypisuje listę lokalnych gałęzi i gwiazdką zaznacza tę, na której aktualnie siedzisz. Dodasz nazwę — utworzysz nową gałąź (ale na nią nie przeskoczysz!). Dorzucisz odpowiednią flagę — usuniesz, zmienisz nazwę albo podejrzysz gałęzie zdalne. To komenda, którą wpisujesz dziesiątki razy dziennie, więc warto ją znać na pamięć.

Składnia i najważniejsze opcje

Podstawowa forma: git branch [opcje] []

  • -a — wypisuje wszystkie gałęzie, lokalne i zdalne (te z prefiksem remotes/).
  • -r — pokazuje wyłącznie gałęzie zdalne (remote-tracking).
  • -v — tryb gadatliwy: przy każdej gałęzi pokaże ostatni commit (a -vv dorzuci powiązaną gałąź zdalną).
  • -d — usuwa gałąź, ale tylko jeśli została już zmergowana (bezpieczny tryb).
  • -D — usuwa gałąź na siłę, nawet niezmergowaną. Bez litości.
  • -m — zmienia nazwę gałęzi (bez podania starej zmienia bieżącą).
  • --merged / --no-merged — filtruje listę do gałęzi już wmergowanych albo jeszcze nie.
  • -l '' — listuje gałęzie pasujące do wzorca, np. feature/*.

Przykłady użycia

  • git branch — wypisuje lokalne gałęzie i pokazuje, na której jesteś.
  • git branch nowa-funkcja — tworzy gałąź nowa-funkcja od bieżącego commita (ale Cię na nią nie przełącza).
  • git branch -a — pokazuje pełną listę: lokalne plus wszystkie zdalne.
  • git branch -d stara-funkcja — kasuje zmergowaną gałąź, sprzątając po skończonej pracy.
  • git branch --merged main — pokazuje gałęzie już wlane do main, czyli kandydatów do usunięcia.

Częste błędy i pułapki

Najczęstsza wpadka: git branch nazwa tworzy gałąź, ale nie przełącza Cię na nią — dalej commitujesz tam, gdzie byłeś. Żeby od razu przeskoczyć, użyj git switch -c nazwa albo starszego git checkout -b nazwa.

Druga pułapka: -d krzyknie błędem przy niezmergowanej gałęzi — to nie awaria, tylko zabezpieczenie przed utratą pracy. Sięgaj po -D dopiero, gdy masz pewność, że tych commitów nie potrzebujesz, bo odzyskanie ich wymaga grzebania w git reflog.

Pamiętaj też, że git branch -d usuwa tylko lokalną kopię. Gałąź na serwerze kasujesz osobno przez git push origin --delete nazwa. A lista po -a potrafi pokazywać nieaktualne gałęzie zdalne, dopóki nie odświeżysz stanu przez git fetch --prune.

Powiązane komendy: git switch, git checkout, git merge, git push, git fetch, git log.