„Git“ filialo pagrindai
Gebėjimas lengvai išsišakoti yra viena geriausių „Git“ savybių. Filialų kūrimas kitose versijų valdymo sistemose gali būti brangus, atsižvelgiant į vietos ir apdorojimo reikalavimus. Gito šakojimas yra efektyvus. Taigi vartotojai labiau linkę naudoti filialus „Git“.
Šakojanti darbo eiga
Tarkime, kad jūs pradėjote naują projektą „myvideogame“. Jis turi vieną šaką. Numatytasis pradinio filialo pavadinimas „Git“ yra vadinamas pagrindinis. Jis sukuriamas automatiškai. Sukurkime „myvideogame Git“ saugyklą.
$ mkdir myvideogame$ cd myvideogame
$ git init
Sukūrėte tuščią „Git“ saugyklą. Pridėkime savo dizainą.txt failas su jame esančiu tekstu.
$ echo „1 dizaino sprendimas: pridėti vaizdų“ >> dizainas.txt$ echo „Dizaino sprendimas 2: Rašyti kodą“ >> dizainas.txt
$ git pridėti -A
$ git įsipareigoti -m "C0: pridėta dizaino byla"
Leidžia pridėti dar keletą pakeitimų:
$ echo „3 dizaino sprendimas: bandomasis žaidimas“ >> dizainas.txt$ git pridėti -A
$ git įsipareigoti -m "C1: modifikuotas dizaino failas"
Jei patikrinsite istoriją, rasite:
$ git žurnalas - tiesioginis6a09bd6 C1: modifikuota dizaino byla
5f18d89 C0: pridėta dizaino byla
Jei patikrinsite „Git“ būseną ir visas sukurtas šakas (naudodami komandą: git branch -a), pamatysite:
$ git būsenaFilialo kapitonas
nieko neįsipareigoti, darbo katalogas švarus
$ git filialas -a
* meistras
Šiuo metu turite tokią situaciją:
Pagrindiniame filiale atlikote du įsipareigojimus.
Tarkime, kad žaidimo testavime radote klaidų, tačiau nenorite išspręsti problemos pagrindiniame filiale, nes dar nenorite maišytis su originaliu dizainu. Taigi galite sukurti naują filialą, vadinamą klaidų taisymu:
$ git filialo klaidų taisymasDabar, jei patikrinsite visus filialus:
$ git filialas -aKlaidos ištaisymas
* meistras
Dabar jūs sukūrėte naują filialą, vadinamą klaidų taisymu. Situaciją galima vizualizuoti taip:
Tačiau žvaigždė (*) šalia pagrindinės šakos reiškia, kad jūs vis dar esate šeimininke. Jei atliksite pakeitimus, jis vis tiek pateks į pagrindinį filialą. Norėdami pakeisti filialus, galite naudoti komandą „Checkout“:
„$ git“ kasos klaidų taisymasPerjungta į šakos „klaidų taisymas“
Galite patikrinti, kurį filialą naudojate, naudodami būseną arba komandą „filialas -a“:
$ git būsenaŠakos klaidų taisymas
nieko neįsipareigoti, darbo katalogas švarus
$ git filialas -a
* Klaidos ištaisymas
meistras
Dabar pataisykime klaidą:
$ echo „Bug Fix 1“ >> dizainas.txt$ git pridėti -A
$ git įsipareigoti -m "C2: 1 ištaisyta klaida"
Jūs sukūrėte tokią situaciją:
Pagrindinis filialas neturi C2 pakeitimo. Tai galite lengvai patikrinti, patikrinę dviejų šakų istoriją.
Pirma, klaidų taisymo šakos istorija:
$ git būsenaŠakos klaidų taisymas
nieko neįsipareigoti, darbo katalogas švarus
$ git žurnalas - tiesioginis
„e8f615b C2“: ištaisyta klaida 1
6a09bd6 C1: modifikuota dizaino byla
5f18d89 C0: pridėta dizaino byla
Tada galite pereiti prie pagrindinio filialo ir patikrinti jo istoriją:
$ git atsiskaitymo meistrasPerjungtas į filialo „master“
$ git būsena
Filialo kapitonas
nieko neįsipareigoti, darbo katalogas švarus
$ git žurnalas - tiesioginis
6a09bd6 C1: modifikuota dizaino byla
5f18d89 C0: pridėta dizaino byla
Matote, kad pagrindiniame filiale nėra klaidų taisymo šakos pakeitimų.
Visada galite sukurti naują filialą iš dabartinio filialo, kuriame esate. Tarkime, kad norite sukurti kitą šaką, kurioje bus eksperimentinių funkcijų. Filialą galite sukurti iš „Master“ ir pridėti prie jo eksperimentinių funkcijų:
$ git būsenaFilialo kapitonas
nieko neįsipareigoti, darbo katalogas švarus
$ git filialas eksperimentinis
eksperimentinis „$ git“ atsiskaitymas
Perjungtas į filialą „eksperimentinis“
$ git būsena
Šakoje eksperimentinis
nieko neįsipareigoti, darbo katalogas švarus
$ echo „Eksperimento funkcijų pridėjimas“ >> dizainas.txt
$ git pridėti -A
$ git įsipareigoti -m "C3: pridėtos eksperimentinės funkcijos"
[eksperimentinis 637bc20] C3: pridėtos eksperimentinės savybės
1 failas pakeistas, 1 įterpimas (+)
Jei patikrinsite eksperimentinio filialo istoriją, pamatysite:
$ git būsenaŠakoje eksperimentinis
nieko neįsipareigoti, darbo katalogas švarus
$ git žurnalas - tiesioginis
637bc20 C3: pridėtos eksperimentinės funkcijos
6a09bd6 C1: modifikuota dizaino byla
5f18d89 C0: pridėta dizaino byla
Pastebėsite, kad neturite C2 įsipareigojimo, kuris buvo sukurtas klaidų taisymo šakoje. Kadangi eksperimentinė šaka sukurta iš pagrindinės šakos, ji nemato klaidų taisymo. Turite tokią situaciją:
Išvada
Sveikiname! Jūs išmokote šakotis.
Git filialus lengva ir greitai padaryti. Tai viena iš Gito populiarumo priežasčių. Jei norite tapti įgudusiu „Git“ vartotoju, turite mokėti „Git“ šakotis.
Tolesnis tyrimas:
https: // git-scm.com / book / en / v2 / Git-Branching-Basic-Branching-and-Merging