git status

Pokazuje stan drzewa roboczego i poczekalni — pliki zmienione, dodane i nieśledzone.

git status to twoja pierwsza komenda przy każdym podejściu do repozytorium. Pokazuje, na jakiej gałęzi jesteś, co zmieniłeś od ostatniego commita, które pliki czekają już w poczekalni (staging area), a które Git w ogóle nie śledzi. Nic nie zmienia, niczego nie zapisuje — to czysty podgląd stanu. Zanim zrobisz git add albo git commit, rzuć tu okiem, żeby wiedzieć, co tak naprawdę za chwilę zacommitujesz.

Składnia i najważniejsze opcje

Podstawowa forma: git status [opcje]

  • -s (albo --short) — zwięzły, dwukolumnowy widok zamiast rozwlekłego opisu. Idealny, gdy chcesz szybki przegląd.
  • -b (albo --branch) — dokłada informację o gałęzi i jej relacji do zdalnej (ahead/behind), nawet w trybie skróconym.
  • -u[tryb] (albo --untracked-files[=tryb]) — kontroluje pokazywanie nieśledzonych plików: no, normal (domyślnie), all.
  • --ignored — pokazuje też pliki ignorowane przez .gitignore.
  • --porcelain — format stabilny, przeznaczony dla skryptów (nie zmienia się między wersjami Gita).
  • -v (albo --verbose) — dorzuca diff zmian, które są już w poczekalni.
  • --show-stash — informuje, ile masz schowków (stash).

Przykłady użycia

  • git status — pełny, opisowy raport: gałąź, pliki staged, zmodyfikowane i nieśledzone wraz z podpowiedziami co dalej.
  • git status -sb — kompaktowy widok z nagłówkiem gałęzi. Połączone flagi -s i -b to klasyk do codziennej pracy.
  • git status -uall — wylistuje pojedynczo wszystkie nieśledzone pliki, także te ukryte w nowych katalogach (domyślnie Git pokazuje tylko sam katalog).
  • git status --ignored — przydatne, gdy zastanawiasz się, dlaczego jakiś plik nie trafia do repo — sprawdzisz, czy nie wpadł pod .gitignore.
  • git status --porcelain — gdy chcesz sparsować wynik w skrypcie bashowym, np. policzyć zmienione pliki bez ryzyka, że Git zmieni formatkę.

Częste błędy i pułapki

Najczęstsza pomyłka to mylenie obu kolumn w trybie -s: lewa litera dotyczy poczekalni (staging), prawa drzewa roboczego. Plik może być częściowo dodany — MM oznacza, że masz zacommitowaną część zmian i jeszcze nowsze, niezestage’owane. Pamiętaj, że git status niczego nie naprawia ani nie zapisuje — to tylko raport, więc puszczanie go w kółko nie pomoże, dopóki nie zrobisz add czy commit. Nie myl też --short z --porcelain: wyglądają podobnie, ale tylko --porcelain ma gwarancję stabilnego formatu — w skryptach używaj jego, nie -s. I drobiazg: domyślnie nieśledzone pliki w nowym podkatalogu pokazują się jako sam katalog; jeśli czegoś nie widzisz, dorzuć -uall.

Powiązane komendy: git add, git commit, git diff, git log, git restore.