Osnove grananja Git-a
Sposobnost jednostavnog grananja jedna je od najboljih karakteristika Gita. Stvaranje grana u drugim sustavima za upravljanje verzijama može biti skupo u smislu prostora i zahtjeva obrade. Git grananje je učinkovito. Tako su korisnici skloniji korištenju grana u Gitu.
Tok grananja
Pretpostavimo da ste započeli novi projekt koji se zove myvideogame. Ima jednu granu. Zadani naziv početne grane u Gitu naziva se master. Automatski se stvara. Stvorimo myvideogame Git spremište.
$ mkdir mojavideo igra$ cd mojavideo igra
$ git init
Stvorili ste prazno Git spremište. Dodajmo svoj dizajn.txt datoteku s nekim tekstom.
$ echo "Odluka o dizajnu 1: Dodaj slike" >> dizajn.txt$ echo "Odluka o dizajnu 2: Napiši kod" >> dizajn.txt
$ git dodaj -A
$ git commit -m "C0: Dodana datoteka dizajna"
Dopustite da dodamo još neke promjene:
$ echo "Odluka o dizajnu 3: Test igra" >> dizajn.txt$ git dodaj -A
$ git commit -m "C1: Izmijenjena datoteka dizajna"
Ako provjerite povijest, pronaći ćete:
$ git log --oneline6a09bd6 C1: Izmijenjena datoteka dizajna
5f18d89 C0: Dodana datoteka dizajna
Ako provjerite Git status i sve grane koje su stvorene (pomoću naredbe: git branch -a), vidjet ćete:
$ git statusNa majstoru grane
ništa za obvezivanje, radni direktorij čist
$ git grana -a
* ovladati; majstorski
Trenutno imate sljedeću situaciju:
Napravili ste dva urezivanja u glavnoj grani.
Pretpostavimo da ste pronašli greške u testiranju igara, ali ne želite riješiti problem u glavnoj grani jer se još ne želite petljati s izvornim dizajnom. Tako možete stvoriti novu granu koja se naziva bugfix:
$ git ispravka ispravke graneAko provjerite sve grane:
$ git grana -aispravka programskih pogrešaka
* ovladati; majstorski
Sada ste stvorili novu granu pod nazivom bugfix. Situacija se može vizualizirati na sljedeći način:
Međutim, zvijezda (*) pored glavne grane znači da ste još uvijek u glavnoj grani. Ako napravite promjene, i dalje će ići u glavnu granu. Naredbu checkout možete koristiti za promjenu grana:
Ispravak programske opreme $ git checkoutPrebačeno na granu 'ispravka ispravka'
Možete provjeriti koju granu koristite pomoću naredbe statusa ili “branch -a”:
$ git statusNa ispravku ispravka grana
ništa za obvezivanje, radni direktorij čist
$ git grana -a
* ispravka programske pogreške
ovladati; majstorski
Sada, popravimo grešku:
$ echo "Ispravak grešaka 1" >> dizajn.txt$ git dodaj -A
$ git commit -m "C2: Ispravljena greška 1"
Stvorili ste ovakvu situaciju:
Glavna grana nema promjenu C2. To možete lako provjeriti provjerom povijesti dviju grana.
Prvo, povijest grane ispravka:
$ git statusNa ispravku ispravka grana
ništa za obvezivanje, radni direktorij čist
$ git log --oneline
e8f615b C2: Ispravljena greška 1
6a09bd6 C1: Izmijenjena datoteka dizajna
5f18d89 C0: Dodana datoteka dizajna
Tada se možete prebaciti na glavnu granu i provjeriti njezinu povijest:
$ git checkout masterPrebačeno na granu 'master'
$ git status
Na majstoru grane
ništa za obvezivanje, radni direktorij čist
$ git log --oneline
6a09bd6 C1: Izmijenjena datoteka dizajna
5f18d89 C0: Dodana datoteka dizajna
Možete vidjeti da glavna grana nema promjene iz grane ispravka ispravka.
Uvijek možete stvoriti novu granu iz trenutne grane u kojoj se nalazite. Pretpostavimo da želite stvoriti drugu granu koja će sadržavati eksperimentalne značajke. Možete stvoriti granu od master i dodati joj eksperimentalne značajke:
$ git statusNa majstoru grane
ništa za obvezivanje, radni direktorij čist
$ git grana eksperimentalno
$ git checkout eksperimentalno
Prebačeno na granu "eksperimentalno"
$ git status
Na grani eksperimentalno
ništa za obvezivanje, radni direktorij čist
$ echo "Dodavanje značajki eksperimenta" >> dizajn.txt
$ git dodaj -A
$ git commit -m "C3: Dodane eksperimentalne značajke"
[eksperimentalno 637bc20] C3: Dodane eksperimentalne značajke
1 datoteka promijenjena, 1 umetanje (+)
Ako provjerite povijest eksperimentalne grane, vidjet ćete:
$ git statusNa grani eksperimentalno
ništa za obvezivanje, radni direktorij čist
$ git log --oneline
637bc20 C3: Dodane eksperimentalne značajke
6a09bd6 C1: Izmijenjena datoteka dizajna
5f18d89 C0: Dodana datoteka dizajna
Primijetit ćete da nemate predaje C2 koja je kreirana u grani s ispravcima programskih pogrešaka. Budući da je eksperimentalna grana stvorena od glavne grane, ona ne vidi promjene ispravka pogrešaka. Imate sljedeću situaciju:
Zaključak
Čestitamo! Naučili ste kako se granati.
Git grane lako je i brzo napraviti. To je jedan od razloga Gitove popularnosti. Ako želite postati vješti korisnik Gita, morate postati vješt u grananju Gita.
Daljni studiji:
https: // git-scm.com / book / en / v2 / Git-Branching-Basic-Branching-and-Merging