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

Recomandări cheie

  • Ștergerea ramurilor este o parte importantă a unui flux de lucru tipic Git.
  • Puteți șterge o ramură locală folosind comanda „git branch -d [branchname]”, dar fiți atenți la schimbările necontopite.
  • Diferite instrumente precum GitHub Desktop, GitKraken, Tower și Bitbucket au propriile metode de ștergere a ramurilor, așa că familiarizați-vă cu procesul specific pentru fiecare instrument.

Ramurile lui Git sunt atât de ușoare încât este ușor să le creați oricând aveți nevoie. Dar este și ușor să ajungi cu ramuri rămase de care nu mai ai nevoie. Deci, ce este implicat în ștergerea unei sucursale?

De ce să ștergeți o sucursală?

În primul rând, dacă încă înveți cum să structurați un proiect folosind ramuri git, există șanse destul de mari să creați o ramură și apoi să decideți că nu este nevoie. Acest lucru este bine, deoarece ramificarea este o operațiune ușoară; este foarte rapid și folosește eficient spațiul pe disc.

Ca rezultat, multe fluxuri de lucru de dezvoltare git încurajează ramificarea, chiar și pentru sarcini foarte mici sau scurte. De exemplu, o strategie comună este de a crea o ramură separată pentru fiecare remediere a erorilor.

Ștergerea ramurilor ar trebui să facă parte din fluxul de lucru zilnic la fel de mult ca și crearea lor.

  Cum să porniți Mac-ul în modul sigur

Un depozit de mostre cu ramuri

Exemplele de mai jos se referă la un exemplu de depozit cu următoarea structură:

Rețineți că repo-ul are două ramuri: principal și dev. Fiecare dintre aceste filiale locale este o ramură de urmărire, cu o ramură corespunzătoare în amonte pe un server la distanță (origine).

Este ușor să pierdeți evidența ramurilor, așa că asigurați-vă că știți cum să enumerați ramurile git din linia de comandă sau să le vizualizați în clientul dvs. preferat.

Ștergerea unei ramuri utilizând linia de comandă

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

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

Cum să ștergeți o sucursală locală

Cea mai simplă formă a comenzii șterge o ramură locală, cu condiția ca toate modificările acesteia să fi fost îmbinate:

 git branch -d dev 

Când lucrurile merg bine, veți vedea un mesaj de confirmare:

Nu puteți șterge ramura care este activă în prezent; dacă încerci să faci asta, vei primi un mesaj ca acesta:

Dacă ștergeți o sucursală locală cu modificări necombinate, neîmpinge, veți pierde acele modificări. Prin urmare, git va refuza să ștergă o astfel de ramură în mod implicit. În acest exemplu, dev are modificări dezintegrate care nu au fost trimise în ramura la distanță:

După cum spune mesajul de eroare, puteți forța ștergerea cu indicatorul -D.

Puteți șterge o ramură locală de urmărire dacă ramura sa la distanță corespunzătoare este actualizată, chiar dacă nu este îmbinată. Git va afișa în continuare un avertisment, astfel încât să știți ce s-a întâmplat:

Cum să ștergeți o sucursală de la distanță

Ștergerea unei sucursale la distanță este destul de diferită. Veți folosi comanda git push împreună cu indicatorul -d pentru a șterge. După aceea, furnizați numele telecomenzii (adesea originea) și numele sucursalei:

  Cum să salvați istoricul fișierelor Photoshop într-un fișier text

Ștergerea ramurilor locale și la distanță cu GitHub Desktop

Spre deosebire de programul git din linia de comandă, Aplicația desktop GitHub vă va permite doar să ștergeți ramura activă. Puteți efectua această acțiune prin meniul Filială, selectând opțiunea Ștergere și confirmând-o:

GitHub Desktop nu vă va permite să ștergeți ramura implicită, de exemplu, principală, chiar dacă git însuși acceptă acest lucru. Dacă ramura implicită este cea care este activă în prezent, aplicația dezactivează acțiunea din meniu.

Dacă ramura reprezintă și o ramură la distanță, GitHub Desktop oferă opțiunea de a o șterge și de la distanță:

Ștergerea ramurilor folosind GitKraken

GitKraken afișează ramurile locale și la distanță ale depozitului dvs. în bara laterală din stânga. Trebuie să ștergeți fiecare separat.

Treceți cu mouse-ul peste numele de ramură corespunzător și faceți clic pe meniul de acțiuni de ramură care arată ca trei puncte verticale. Din meniu, selectați Ștergeți :

Veți vedea un mesaj de confirmare care vă informează că aceasta este o operațiune distructivă. Puteți confirma că doriți să continuați cu butonul Ștergere:

Reflectând comportamentul implicit al programului de linie de comandă git, trebuie mai întâi să comutați la o altă ramură decât cea pe care o ștergeți. În caz contrar, veți vedea un mesaj de eroare:

Ștergerea ramurilor locale și la distanță folosind Tower

Ștergerea unei sucursale cu Turn este foarte asemănător cu ștergerea unei ramuri cu GitKraken. Aplicația afișează ramuri locale și la distanță într-un panou din partea stângă. Faceți clic dreapta pe orice ramură și selectați opțiunea Ștergere din meniul contextual:

O diferență esențială este că puteți șterge o ramură la distanță, împreună cu ramura locală, în timpul confirmării:

  Cum să remediați CBS All Access nu funcționează pe Amazon Firestick

Ștergerea unei sucursale pe GitHub

GitHub acționează doar ca o sursă la distanță, așa că ramurile de acolo sunt la distanță în mod implicit. Dacă ștergeți o ramură folosind site-ul web GitHub, va trebui să ștergeți ramura locală corespunzătoare folosind una dintre celelalte metode de aici.

Ca și în cazul aplicației GitHub Desktop, site-ul GitHub nu vă va permite să ștergeți ramura implicită. Dacă încercați, veți vedea un mesaj de eroare:

Ștergerea oricărei alte ramuri este totuși simplă. Din pagina de cod a depozitului, faceți clic pe linkul ramuri, localizați ramura de șters, apoi faceți clic pe pictograma Ștergere ramificație, care arată ca un coș de gunoi:

Fiți conștienți de faptul că nu există verificări pentru modificările necombinate, așa că GitHub va șterge ramura imediat. Cu toate acestea, deoarece va reprezenta întotdeauna o ramură la distanță, acest comportament ar trebui să aibă sens.

Rețineți că, după ștergere, veți vedea un buton pentru a restaura ramura. Cu toate acestea, aceasta este pur și simplu o funcție de anulare utilă, doar în cazul în care faceți clic accidental pe pictograma de ștergere. Nu vă bazați pe ea, deoarece de îndată ce vă reîmprospătați sau vă îndepărtați de pagină, veți pierde opțiunea!

Ștergerea ramurilor locale și la distanță de pe Bitbucket

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

De asemenea, puteți șterge mai multe ramuri simultan dacă efectuați o operațiune de curățare mare:

Ștergerea ramurilor face parte dintr-un flux de lucru tipic Git

Ramurile Git vă pot complica fluxul de lucru, în special unul cu ramuri locale, la distanță și de urmărire. Dar pentru o dezvoltare simplă de zi cu zi, este posibil să creați și să ștergeți filiale locale tot timpul. Acesta este un aspect de bază al unui flux de lucru tipic git cu care ar trebui să vă obișnuiți.

Dacă vă este dificil să vă amintiți exact cum să ștergeți o ramură, luați în considerare configurarea unor aliasuri pentru a elimina ramurile și pur și simplu procesul.