Git Grane

U trenutnoj eri većina kompanija za razvoj softvera radi u zajedničkom okruženju gde nekoliko programera doprinosi istom izvornom kodu. Dok će neki ispravljati greške, drugi bi primenjivali nove i drugačije funkcije. Postavlja se problem, kako održavati različite verzije iste baze koda?

Ovde blista funkcija grane! Grana omogućava svakom programeru da izoluje svoj rad od drugih stvaranjem nove grane iz originalne baze koda.

Šta je grana?

Grana je nezavisna linija razvoja. Radi kao pokazivač na vaše sledeće promene. Kad god se kreira nova grana, Git kreira novi pokazivač, zadržavajući izvornu bazu koda netaknutom.

Kada napravite svoj prvi commit u repozitorijum, Git će automatski stvoriti glavnu granu po defaultu. Svaki sledeći commit koji napravite otići će u glavnu granu dok ne odlučite da kreirate i prebacite se na drugu granu.

Kreiranje grana

Hajde da počnemo sa kreiranjem nove grane: git branch hello-world

Ovo samo stvara novu granu. Da biste započeli rad na njoj, moraćete da se prebacite na granu sa git checkout. Sada ste spremni da koristite standardne naredbe git add i git commit.

Možete videti dve različite grane koje upućuju na isti commit. Kako Git zna koja se grana trenutno odjavljuje? Ovde nastupa pokazivač HEAD!

HEAD uvek pokazuje na trenutno odjavljenu granu ili commit. U našem slučaju, to je master. Idemo sa git checkout hello-world i vidimo šta će se dogoditi.

Kao što vidite, HEAD sada pokazuje ka grani hello-world umesto ka master. Sledeći korak je modifikovanje nekih datoteka i kreiranje novog commit-a pomoću git commit -m "poruka komita"

Novi commit C5 je kreirana u grani hello-world. Pokazivači uvek prelaze na najnoviji commit u toj grani koji smo checkout-ovali. Promene u grani hello-world nisu uticale ni na jednu drugu granu. Razgranavanje vam omogućava da svoj rad izolujete od drugih.

Uobičajena je praksa da se za svaki zadatak kreira nova grana (npr. Ispravljanje grešaka, nove funkcije itd.), Što je dobra praksa jer omogućava drugima da lako prepoznaju koje promene mogu očekivati, a takođe i u svrhu vraćanja unazad da bi razumeli zašto je primenjena određena promena koda. Više možete pročitati u Git Beginner's Guide for Dummies.

Napravite svoj projekat Ruby on Rails i isprobajte ga! Napravite Rspec testove na drugoj grani i unesite promene.

Nezavisan(Odvojen) HEAD

Kao što smo već rekli, HEAD uvek pokazuje na trenutno checkout-ovanu granu ili commit. Checkout na commit i pogledajte šta se dešava sa git checkout C0.

Sada HEAD pokazuje na C0. Trenutno se checkout-ujemo u udaljenu granu. Da li je moguće kreirati novi commit tokom checkout-ovanja do jedne? Vreme je da to saznamo! git commit -m "commit poruka"

HEAD se odvaja i kreće zajedno sa svakim novim kreiranim commit-om. Novo kreirani commit C6 pokazuje na C0, koje se sada ponaša kao grana, ali nije.

Commit-ovi do kojih nije dostupna nijedna grana ili oznaka biće smeće prikupljeno i uklonjeno iz spremišta nakon 30 dana.

Da bismo to izbegli, jednostavno treba da kreiramo novu granu za novo kreirani commit i checkout-ujemo u njega. git checkout -b hotfix C6.

Uvek koristite grane kada rešavate nove probleme kako biste izbegli narušavanje funkcija vašeg saradnika!

Pretplatite se i kupite naše buduće članke čim ih objavimo!