Ključni zaključci
- Uklanjanje grana je bitan deo uobičajenog Git radnog procesa.
- Lokalnu granu možete izbrisati koristeći komandu „git branch -d [ime_grane]“, ali budite pažljivi sa nespojenim promenama.
- Različiti alati kao što su GitHub Desktop, GitKraken, Tower i Bitbucket imaju sopstvene metode za brisanje grana, stoga se upoznajte sa specifičnim postupkom za svaki od njih.
Git grane su toliko lagane da ih je lako kreirati kad god je to potrebno. Međutim, lako se može desiti da ostanete sa nepotrebnim granama. Dakle, šta podrazumeva brisanje grane?
Zašto brisati granu?
Ako još uvek savladavate način struktuiranja projekta pomoću Git grana, velika je verovatnoća da ćete kreirati granu, a zatim shvatiti da vam ona nije potrebna. Ovo je sasvim u redu, jer je kreiranje grana jednostavna operacija; veoma je brzo i efikasno koristi prostor na disku.
Kao rezultat toga, mnogi razvojni procesi sa Gitom podstiču korišćenje grana, čak i za vrlo male ili kratke zadatke. Na primer, uobičajena praksa je da se napravi posebna grana za svaku ispravku greške.
Brisanje grana bi trebalo da bude sastavni deo vašeg svakodnevnog radnog procesa, isto kao i njihovo kreiranje.
Primer repozitorijuma sa granama
Primeri koji slede odnose se na uzorak repozitorijuma sa sledećom strukturom:
Važno je napomenuti da repozitorijum ima dve grane: glavnu i razvojnu. Svaka od ovih lokalnih grana je grana za praćenje, sa odgovarajućom uzlaznom granom na udaljenom serveru (poreklo).
Lako je izgubiti pregled grana, stoga se pobrinite da znate kako da prikažete Git grane iz komandne linije ili da ih vidite u vašem omiljenom klijentu.
Brisanje grane pomoću komandne linije
Osnovna sintaksa komande za brisanje grane je:
git branch (-d | -D) [-r] <ime_grane>...
Kako izbrisati lokalnu granu
Najjednostavniji oblik komande briše lokalnu granu, pod uslovom da su sve njene promene spojene:
git branch -d dev
Kada sve prođe kako treba, videćete poruku potvrde:
Ne možete izbrisati granu koja je trenutno aktivna; ako pokušate to da uradite, dobićete poruku sličnu ovoj:
Ako izbrišete lokalnu granu sa nespojenim, nepoguranim promenama, izgubiće se te promene. Zato će Git podrazumevano odbiti da izbriše takvu granu. U ovom primeru, razvojna grana ima nespojene promene koje nisu pogurane u udaljenu granu:
Kao što poruka o grešci kaže, možete prisilno brisanje sa -D zastavicom.
Možete izbrisati lokalnu granu za praćenje ako je njena odgovarajuća udaljena grana ažurirana, čak i ako nije spojena. Git će i dalje prikazati upozorenje, kako biste bili svesni šta se dogodilo:
Kako izbrisati udaljenu granu
Brisanje udaljene grane je sasvim drugačije. Za brisanje ćete koristiti git push komandu zajedno sa zastavicom -d. Nakon toga, navedite ime udaljenog (često poreklo) i naziv grane:
Brisanje lokalnih i udaljenih grana pomoću GitHub Desktop-a
Za razliku od Git programa iz komandne linije, GitHub-ova desktop aplikacija će vam omogućiti da izbrišete samo aktivnu granu. Ovu radnju možete izvršiti preko menija Grana, tako što ćete izabrati opciju Izbriši i potvrditi je:
GitHub Desktop vam neće dozvoliti da izbrišete podrazumevanu granu — npr. glavnu — iako sam Git to podržava. Ako je podrazumevana grana ona koja je trenutno aktivna, aplikacija onemogućava radnju menija.
Ako grana takođe predstavlja udaljenu granu, GitHub Desktop daje opciju da je izbriše i sa daljinskog:
Brisanje grana pomoću GitKrakena
GitKraken prikazuje lokalne i udaljene grane vašeg repozitorijuma na levoj bočnoj traci. Morate izbrisati svaku od njih zasebno.
Pređite kursorom preko odgovarajućeg imena grane i kliknite na meni Radnje grane koji izgleda kao tri vertikalne tačke. U meniju izaberite Izbriši <ime_grane>:
Videćete poruku potvrde koja vas obaveštava da je ovo destruktivna operacija. Možete potvrditi da želite da nastavite pomoću dugmeta Izbriši:
Održavajući podrazumevano ponašanje Git programa komandne linije, prvo morate da se prebacite na granu koja nije ona koju brišete. U suprotnom, videćete poruku o grešci:
Brisanje lokalnih i udaljenih grana pomoću Tower-a
Brisanje grane sa Tower-om je veoma slično brisanju grane sa GitKrakenom. Aplikacija prikazuje lokalne i udaljene grane na panelu sa leve strane. Kliknite desnim tasterom miša na bilo koju granu i izaberite opciju Izbriši iz kontekstnog menija:
Jedna ključna razlika je u tome što možete izbrisati udaljenu granu, zajedno sa njenom lokalnom granom, tokom potvrde:
Brisanje grane na GitHub-u
GitHub funkcioniše samo kao udaljeni izvor, stoga su tamošnje grane podrazumevano udaljene. Ako izbrišete granu koristeći GitHub veb lokaciju, moraćete da izbrišete odgovarajuću lokalnu granu koristeći neki od drugih metoda ovde.
Kao i kod aplikacije GitHub Desktop, GitHub veb lokacija vam neće dozvoliti da izbrišete podrazumevanu granu. Ako pokušate, videćete poruku o grešci:
Međutim, brisanje bilo koje druge grane je jednostavno. Sa stranice koda skladišta, kliknite na vezu grane, pronađite granu koju želite da izbrišete, a zatim kliknite na ikonu Izbriši granu, koja izgleda kao kanta za otpatke:
Imajte na umu da ne postoje provere za neobjavljene promene, tako da će GitHub jednostavno izbrisati granu odmah. Međutim, pošto će uvek predstavljati udaljenu granu, ovo ponašanje bi trebalo da ima smisla.
Imajte na umu da ćete nakon brisanja videti dugme za vraćanje grane. Međutim, ovo je jednostavno korisna funkcija poništavanja, samo u slučaju da slučajno kliknete na ikonu za brisanje. Nemojte se oslanjati na to, jer čim osvežite stranicu ili napustite stranicu, izgubiće se opcija!
Brisanje lokalnih i udaljenih grana na Bitbucket-u
Bitbucket, kao i GitHub, neće vam dozvoliti da izbrišete podrazumevanu granu. Bitbucket ovo naziva Glavna grana u podešavanjima repozitorijuma. Možete izbrisati bilo koju drugu granu navedenu na kartici Grane, preko odgovarajućeg menija Akcije:
Takođe možete izbrisati više od jedne grane odjednom ako radite veću operaciju čišćenja:
Brisanje grana je deo tipičnog Git radnog procesa
Git grane mogu zakomplikovati vaš radni proces, posebno onaj sa lokalnim, udaljenim granama i granama za praćenje. Ali za jednostavan svakodnevni razvoj, verovatno ćete stalno kreirati i brisati lokalne grane. Ovo je ključni aspekt tipičnog Git radnog toka na koji bi trebalo da se naviknete.
Ako vam je teško da se setite tačno kako da izbrišete granu, razmislite o postavljanju alijasa za uklanjanje grana i pojednostavite proces.