Cum să ștergeți o ramură în Git local și de la distanță

Recomandări Esențiale

  • Eliminarea ramurilor reprezintă o componentă esențială a unui flux de lucru Git standard.
  • Pentru a șterge o ramură locală, folosiți comanda „git branch -d [numele_ramurii]”, dar acordați atenție modificărilor care nu au fost combinate.
  • Diverse instrumente, cum ar fi GitHub Desktop, GitKraken, Tower și Bitbucket, au metode proprii de eliminare a ramurilor. Vă recomandăm să vă familiarizați cu procesul specific fiecărui instrument.

Ramurile în Git sunt atât de ușor de gestionat, încât pot fi create cu ușurință ori de câte ori este necesar. Cu toate acestea, la fel de ușor se pot acumula ramuri de care nu mai aveți nevoie. Prin urmare, ce implică efectiv ștergerea unei ramuri?

De ce să Eliminați o Ramură?

În primul rând, dacă sunteți la începutul procesului de învățare a structurării unui proiect folosind ramuri Git, este foarte probabil să creați o ramură și ulterior să decideți că nu mai este necesară. Acest lucru este absolut normal, având în vedere că ramificarea este o operațiune simplă, rapidă și eficientă din punct de vedere al spațiului de stocare.

Ca urmare, numeroase fluxuri de lucru de dezvoltare Git recomandă ramificarea, chiar și pentru sarcinile foarte mici sau de scurtă durată. Un exemplu comun este crearea unei ramuri distincte pentru fiecare corectură de erori.

Ștergerea ramurilor ar trebui să fie o parte integrantă a rutinei zilnice de lucru, la fel ca și crearea lor.

Exemplu de Depozit cu Ramuri

Exemplele prezentate mai jos se bazează pe un depozit demonstrativ cu următoarea structură:

Acest depozit are două ramuri: `main` și `dev`. Fiecare dintre aceste ramuri locale este o ramură de urmărire, cu o ramură corespondentă pe un server extern (origin).

Este ușor să pierdeți evidența ramurilor, așa că asigurați-vă că știți cum să afișați lista ramurilor în linia de comandă sau să le vizualizați prin clientul dumneavoastră preferat.

Ștergerea unei Ramuri Folosind Linia de Comandă

Sintaxa de bază a comenzii pentru ștergerea unei ramuri este:

git branch (-d | -D) [-r] <numele_ramurii>...

Cum să Ștergeți o Ramură Locală

Cea mai simplă formă a comenzii elimină o ramură locală, cu condiția ca toate modificările să fi fost deja integrate:

git branch -d dev

În cazul unui rezultat reușit, veți primi un mesaj de confirmare:

Nu puteți șterge ramura care este activă în prezent. Dacă încercați, veți primi un mesaj similar:

Dacă ștergeți o ramură locală care conține modificări neintegrate, neîncărcate, veți pierde aceste modificări. Prin urmare, Git va refuza ștergerea unei astfel de ramuri implicit. În acest exemplu, ramura `dev` include modificări neintegrate care nu au fost încă încărcate în ramura externă:

După cum sugerează mesajul de eroare, puteți forța ștergerea folosind parametrul `-D`.

Puteți șterge o ramură locală de urmărire dacă ramura sa externă corespondentă a fost actualizată, chiar dacă nu a fost integrată. Git va afișa totuși un avertisment, pentru a vă informa despre ce s-a întâmplat:

Cum să Ștergeți o Ramură Externă

Ștergerea unei ramuri externe este un proces diferit. Veți folosi comanda `git push` împreună cu parametrul `-d`. Apoi, specificați numele telecomenzii (de obicei `origin`) și numele ramurii:

Ștergerea Ramurilor Locale și Externe cu GitHub Desktop

Spre deosebire de programul Git din linia de comandă, Aplicația Desktop GitHub vă permite să ștergeți doar ramura activă. Această acțiune poate fi realizată prin meniul Ramură, selectând opțiunea Ștergere și confirmând-o:

GitHub Desktop nu vă va permite să ștergeți ramura principală, de exemplu `main`, deși Git în sine o permite. Dacă ramura principală este cea activă, aplicația dezactivează opțiunea din meniu.

Dacă ramura este și una externă, GitHub Desktop vă oferă opțiunea de a o șterge și de la distanță:

Ștergerea Ramurilor Folosind GitKraken

GitKraken afișează ramurile locale și externe ale depozitului în bara laterală stângă. Trebuie să ștergeți fiecare ramură separat.

Treceți cu mouse-ul peste numele ramurii și faceți clic pe meniul de acțiuni, reprezentat de trei puncte verticale. Din meniu, selectați Ștergeți <numele_ramurii>:

Veți primi un mesaj de confirmare care vă avertizează că aceasta este o operațiune ireversibilă. Puteți confirma că doriți să continuați apăsând butonul Ștergere:

În mod similar cu programul Git din linia de comandă, este necesar să comutați mai întâi la o altă ramură înainte de a o șterge pe cea dorită. În caz contrar, veți primi un mesaj de eroare:

Ștergerea Ramurilor Locale și Externe Folosind Tower

Ștergerea unei ramuri cu Tower este similară cu ștergerea unei ramuri cu GitKraken. Aplicația afișează ramurile locale și externe într-un panou lateral stânga. Faceți clic dreapta pe orice ramură și selectați opțiunea Ștergere din meniul contextual:

O diferență importantă este că puteți șterge o ramură externă, alături de cea locală, în timpul confirmării:

Ștergerea unei Ramuri pe GitHub

GitHub funcționează ca o sursă externă, ramurile de acolo fiind, implicit, externe. Dacă ștergeți o ramură folosind site-ul GitHub, va trebui să ștergeți și ramura locală corespunzătoare, folosind una dintre celelalte metode prezentate.

La fel ca în cazul aplicației GitHub Desktop, site-ul GitHub nu vă permite să ștergeți ramura principală. Dacă încercați, veți primi un mesaj de eroare:

Ștergerea oricărei alte ramuri este însă simplă. Din pagina de cod a depozitului, faceți clic pe linkul Ramuri, găsiți ramura pe care doriți să o ștergeți și apoi faceți clic pe pictograma Ștergere ramură, reprezentată de un coș de gunoi:

Rețineți că nu există verificări pentru modificările neintegrate, GitHub ștergând ramura imediat. Totuși, având în vedere că este vorba de o ramură externă, acest comportament este de așteptat.

De asemenea, veți observa un buton pentru a restabili ramura după ștergere. Aceasta este o funcție utilă de anulare, în cazul în care faceți clic accidental pe pictograma de ștergere. Totuși, nu vă bazați pe aceasta, deoarece odată ce reîmprospătați pagina sau o părăsiți, veți pierde această opțiune!

Ștergerea Ramurilor Locale și Externe pe Bitbucket

Bitbucket, similar cu GitHub, nu vă permite să ștergeți ramura implicită, denumită ramură principală în setările depozitului. Puteți șterge orice altă ramură listată în fila Ramuri, prin meniul Acțiuni corespunzător:

Puteți șterge și mai multe ramuri simultan, în cazul unei operațiuni de curățare mai ample:

Ștergerea Ramurilor Face Parte dintr-un Flux de Lucru Git Tipic

Ramurile Git pot complica fluxul de lucru, mai ales dacă acesta include ramuri locale, externe și de urmărire. Însă, pentru dezvoltarea de zi cu zi, este normal să creați și să ștergeți ramuri locale în mod frecvent. Acesta este un aspect fundamental al unui flux de lucru Git tipic, cu care este recomandat să vă familiarizați.

Dacă vi se pare dificil să memorați pașii exacți pentru a șterge o ramură, vă sugerăm să configurați aliasuri pentru a simplifica procesul de eliminare a ramurilor.