Šioje pamokoje atliksime šiuos veiksmus:
- Sukurkite nuotolinę saugyklą
- Sukurkite vietinę nuotolinės saugyklos kopiją
- Vietinėje kopijoje sukurkite du filialus
- Įstumkite vieną šaką į nuotolinę saugyklą
- Ištrinti vietinius filialus
- Ištrinkite nuotolinius filialus
Pamoka turėtų suteikti jums bendrą supratimą apie filialo kūrimo ir ištrynimo procesą, todėl jūs turite gerą komandą apie būtinus veiksmus, kai reikia ištrinti vietinį ar nuotolinį filialą.
Pradėkime.
1. Nuotolinės saugyklos kūrimas
Sukurkime aplanką, pavadintą projektas.git ir inicializuokite kaip nuotolinę saugyklą:
$ mkdir projektas.git$ cd projektas.git
$ git init -bare
Inicijuota tuščia „Git“ saugykla aplanke / Vartotojai / zak / _work / LearnGIT / git_delete_branch / project.git /
2. Nuotolinės saugyklos vietinės kopijos kūrimas
Naujoje vietoje sukurkime vietinę nuotolinės talpyklos kopiją „project_local“ naudodami komandą „klonas“.
Pastaba: jei dirbate su „GitHub“ arba „BitBucket“, atlikite tą patį procesą klonuodami saugyklą. Tokiu atveju vietoj viso čia naudojamo failo kelio turėsite SSH nuorodą.
$ git clone / Vartotojai / zak / _work / LearnGIT / git_delete_branch / project.git project_localKlonavimas į „project_local“ ..
įspėjimas: Panašu, kad klonavote tuščią saugyklą.
padaryta.
3. Filialų kūrimas vietinės kopijos viduje
Pirmiausia pridėkime failą prie vietinės kopijos, tada stumkite jį į nuotolinę saugyklą:
$ cd project_local$ palieskite „ReadMe“.txt
$ git pridėti -A
$ git įsipareigoti -m „Modulio inicijavimas“
[meistras (root-įsipareigoti) 81eb2a3] Modulio inicijavimas
Pakeistas 1 failas, 0 įterpimų (+), 0 pašalinimų (-)
sukurti režimą 100644 „ReadMe“.txt
$ git push kilmės meistras
Objektų skaičiavimas: 3, atlikta.
Rašyti objektus: 100% (3/3), 221 baitai | 0 baitų / s, atlikta.
Iš viso 3 (0 delta), pakartotinai panaudota 0 (0 delta)
Kam / Vartotojai / zak / _work / LearnGIT / git_delete_branch / project.git
* [naujas filialas] meistras -> meistras
Pirmiau pateiktose komandose sukūrėme failą pavadinimu „ReadMe“.„txt“, pridėjo jį prie vietinės kopijos, priskyrė vietinei kopijai ir tada pakeitė nuotolinės saugyklos ar pirminės šakos pakeitimus.
Jei patikrinsite filialus, pamatiniame filiale pamatysite vietinę kopiją:
$ git filialas* meistras
Jei patikrinsite nuotolinius filialus, pamatysite ir pagrindinį filialą:
$ git filialas -rkilmė / meistras
Patarimas: Norėdami naudoti visus filialus vietinėse ir nuotolinėse saugyklose, galite naudoti „-a“ parinktį.
$ git filialas -a* meistras
pulteliai / kilmė / meistras
Iš pagrindinio šakos sukurkime dvi šakas, vadinamas b1 ir b2:
$ git filialas b1$ git filialas b2
Patikrinkime, ar šakos buvo sukurtos:
$ git filialasb1
b2
* meistras
Dabar mes atliksime keletą pakeitimų filialuose:
$ git atsiskaitymas b1Perjungta į „b1“ atšaką
$ touch filialas.txt
$ git pridėti -A
$ git įsipareigoti -m „Filialo1 modifikacija“
[b1 a2f488e] Filialo1 modifikacija
Pakeistas 1 failas, 0 įterpimų (+), 0 pašalinimų (-)
sukurti režimą 100644 filialas1.txt
$ git atsiskaitymas b2
Perjungta į „b2“ atšaką
$ touch filialas2.txt
$ git pridėti -A
$ git įsipareigoti -m „Filialo 2 modifikacija“
[b2 2abb723] Filialo 2 modifikacija
Pakeistas 1 failas, 0 įterpimų (+), 0 pašalinimų (-)
sukurti režimą 100644 filialas2.txt
Patikrinkime vietinių ir nuotolinių filialų būsenas:
$ git filialasb1
* b2
meistras
$ git filialas -r
kilmė / meistras
Mes galime pamatyti, kad mes turime tris filialų meistrus - b1 ir b2. Bet nuotolinėje saugykloje turime tik pagrindinį filialą.
4. Filialų perkėlimas į nuotolinę saugyklą
Stumkime b1 šaką į nuotolinę saugyklą:
$ git push pradžia b1Objektų skaičiavimas: 2, atlikta.
Delta suspaudimas naudojant iki 4 siūlų.
Suspausti objektai: 100% (2/2), padaryta.
Rašomi objektai: 100% (2/2), 249 baitai | 0 baitų / s, atlikta.
Iš viso 2 (0 delta), pakartotinai panaudota 0 (0 delta)
To / Users / zakh / _work / LearnGIT / git_delete_branch / project.git
* [nauja šaka] b1 -> b1
Galite patikrinti vietinio ir nuotolinio filialo būsenas:
$ git filialasb1
* b2
meistras
$ git filialas -r
kilmė / b1
kilmė / meistras
Iš pirmiau nurodytų filialų būsenų galime pamatyti, kad b1 šaką galima gauti ir nuotoliniu būdu.
5. Filialų naikinimas vietoje
Vietoje galite ištrinti šakas naudodami parinktį -d arba -D.
git filialas -dPirmiausia patikrinkime pagrindinį šaką, kad galėtume ištrinti b1 ir b2 šakas.
$ git atsiskaitymo meistrasPerjungtas į filialo „master“
Jūsų filialas atnaujintas su „origin / master“.
Pirmiausia pabandykime parinktį -d, kad ištrintumėte filialą b1:
$ git filialas -d b1klaida: šaka „b1“ nėra visiškai sujungta.
Jei tikrai norite jį ištrinti, paleiskite „git branch -D b1“.
Klaida nurodo, kad turite sujungti pakeitimus iš filialo b1. Tai yra apsaugos priemonė, todėl jūs neprarandate klaidos savo šakų srityje. Norėdami priversti ištrinti sujungimą, galite naudoti -D parinktį. Bet šiuo atveju sujunkime pakeitimus iš b1 ir b2 į pagrindinį ir perkelkime jį į nuotolinę saugyklą.
$ git susijungimas b1Atnaujinamas 81eb2a3 ... a2f488e
Pirmyn
filialas1.txt | 0
Pakeistas 1 failas, 0 įterpimų (+), 0 pašalinimų (-)
sukurti režimą 100644 filialas1.txt
$ git susijungti b2
„Rekursinės“ strategijos sujungimas.
šaka2.txt | 0
Pakeistas 1 failas, 0 įterpimų (+), 0 pašalinimų (-)
sukurti režimą 100644 filialas2.txt
$ git push kilmės meistras
Objektų skaičiavimas: 4, atlikta.
Delta suspaudimas naudojant iki 4 siūlų.
Suspausti objektai: 100% (4/4), padaryta.
Rašyti objektus: 100% (4/4), 454 baitai | 0 baitų / s, atlikta.
Iš viso 4 (delta 1), pakartotinai panaudota 0 (delta 0)
/ Vartotojams / zak / _work / LearnGIT / git_delete_branch / project.git
81eb2a3… 34db496 meistras -> meistras
Dabar pabandykite dar kartą ištrinti šakas:
$ git filialasb1
b2
* meistras
$ git filialas -d b1
Ištrintas filialas b1 (buvo a2f488e).
$ git filialas -d b2
Ištrinta b2 šaka (buvo 2abb723).
$ git filialas
* meistras
Jūs sėkmingai ištrynėte b1 ir b2 filialus vietoje.
6. Nuotolinių filialų trynimas
Kai patikrinsite nuotolines atšakas, vis tiek matysite b1:
$ git filialas -rkilmė / b1
kilmė / meistras
Norėdami ištrinti nuotolinį filialą, galite naudoti šią komandą:
git stumtiTaigi galite ištrinti nuotolinį b1 filialą taip:
$ git push origin - ištrinti b1Kam / Vartotojai / zakh_eecs / _work / LearnGIT / git_delete_branch / project.git
- [ištrinta] b1
Dabar, jei patikrinsite savo nuotolinius filialus, nebeturėtumėte matyti b1:
$ git filialas -rkilmė / meistras
Sveikiname! Jūs sėkmingai ištrynėte visas savo sukurtas šakas. Pratinkite kurti daugiau šakų ir jas ištrinti, kad įvaldytumėte „Git“ šakos ištrynimo procesą.
Tolesnis tyrimas:
- https: // git-scm.com / book / en / v1 / Git-Branching-What-a-Branch-Is
- https: // git-scm.com / book / en / v2 / Git-Branching-Branches-in-a-Riešutinėje
- https: // git-scm.com / book / en / v2 / Git-Branching-Basic-Branching-and-Merging