git branch în Git

Listează, creează, redenumește sau șterge ramuri (branches) de dezvoltare.

Sintaxă comandă
git branch [opțiuni] [nume_ramură]

Ce face git branch

Ramurile (branches) sunt inima colaborării în Git. O ramură este un simplu indicator mobil (pointer de doar 41 de octeți) către un commit specific. Crearea și comutarea ramurilor este practic instantanee.

Permit izolarea noilor funcționalități (features), testarea fără riscuri a ideilor și lucrul în paralel fără a strica versiunea principală stabilă a aplicației.

Opțiuni și argumente

Opțiune / Parametru Descriere
(fără argumente) Listează toate ramurile locale; ramura activă curentă este marcată cu un asterisc (*).
-a, --all Listează atât ramurile locale, cât și ramurile urmărite de la distanță (remote branches).
-d NUME Șterge o ramură în siguranță (doar dacă a fost deja îmbinată/merged în ramura curentă).
-D NUME Forțează ștergerea unei ramuri, chiar dacă conține commit-uri neîmbinate.
-m [VECHI] NOU Redenumește o ramură (ex. git branch -m master main).

Exemple

Exemplul 1: Crearea și listarea unei ramuri noi

Creăm o ramură numită feature/plati și listăm ramurile existente.

git init -b main demo_br >/dev/null
cd demo_br
git config user.name "Test" && git config user.email "test@exemplu.ro"
touch test && git add test && git commit -m "init" >/dev/null
git branch feature/plati
git branch

Rezultat

  feature/plati
* main

Greșeli frecvente

  • Crearea unei ramuri noi cu git branch nume și începerea editării de cod crezând că ești pe noua ramură: git branch doar CREEAZĂ ramura, nu comută pe ea! Pentru a trece pe ea trebuie să rulezi git switch nume.

Comenzi înrudite

  • git switch: Comută pe o altă ramură sau creează și trece pe o ramură nouă.
  • git checkout: Comandă multifuncțională clasică pentru comutarea ramurilor sau restaurarea fișierelor din istoric.
  • git merge: Îmbină istoricul și modificările dintr-o altă ramură în ramura curentă.
  • git rebase: Reaplică commit-urile din ramura curentă peste o altă ramură, creând un istoric perfect liniar.