Git

„Git“ filialų sujungimo ir naikinimo pagrindai

„Git“ filialų sujungimo ir naikinimo pagrindai
Filialai gali padėti organizuoti darbą. Tačiau jūs turite sugebėti sujungti savo darbą, kad darbas būtų nuoseklus. Jei niekada nesijungsite ir neištrinsite šakų, jūsų istorija gali tapti pernelyg chaotiška, kad ją suprastumėte.

Darbas su sujungimu ir filialo ištrynimu

Pirmiausia sukurkime pagrindinį filialą, įdėkime keletą įsipareigojimų, sukurkime naują filialą, vadinamą „features“, pridėkime kelis įsipareigojimus, tada grįžkime į „master“ ir atlikite dar kartą. Štai komandos:

$ mkdir mygame
$ cd mygame
$ git init
$ echo „Dizaino sprendimas 1:„ Brainstarm “>> dizainas.txt
$ git pridėti -A
$ git įsipareigoti -m "C0: pradėtas projektas"
$ echo „Dizaino sprendimas 2: Rašyti kodą“ >> dizainas.txt
$ git pridėti -A
$ git įsipareigoti -m "C1: Pateiktas kodas"
$ git filialo ypatybės
„$ git“ kasos funkcijos
$ echo „Pridėti 1 funkciją“ >> funkcija.txt
$ git pridėti -A
$ git įsipareigoti -m "C2: 1 funkcija"
$ echo „Pridėti 2 funkciją“ >> funkcija.txt
$ git pridėti -A
$ git įsipareigoti -m "C3: 2 bruožas"
$ git atsiskaitymo meistras
$ echo „Vėl modifikuojantis meistrą“ >> dizainas.txt
$ git pridėti -A
$ git įsipareigoti -m "C4: modifikuotas pagrindinis"

Minėtos komandos sukūrė tokią situaciją:

Galite patikrinti dviejų šakų istoriją ir sužinoti, kokius įsipareigojimus jie turi:

$ git būsena
Filialo kapitonas
nieko neįsipareigoti, darbo katalogas švarus
$ git žurnalas - tiesioginis
2031b83 C4: modifikuotas kapitonas
1c0b64c C1: pateiktas kodas
 
„$ git“ kasos funkcijos
Perjungtas į filialo „funkcijas“
 
$ git žurnalas - tiesioginis
93d220b C3: 2 funkcija
ad6ddb9 C2: 1 funkcija
1c0b64c C1: pateiktas kodas
ec0fb48 C0: pradėtas projektas

Tarkime, kad jūs norite perkelti visus pakeitimus iš funkcijų šakos į mūsų pagrindinę šaką. Procesą turėsite pradėti nuo sujungimo tikslo. Kadangi norime įsilieti į pagrindinę šaką, procesą turite pradėti iš ten. Taigi patikrinkime pagrindinį filialą:

$ git atsiskaitymo meistras
Perjungtas į filialo „master“
 
$ git būsena
Filialo kapitonas
nieko neįsipareigoti, darbo katalogas švarus

Dabar sukurkime sujungimą:

$ git suliejimo funkcijos

Jei sujungiant nėra konfliktų, atidarysite teksto redaktorių su komentarais:

Sujungti filialo „funkcijas“
 
# Įveskite įsipareigojimo pranešimą, kad paaiškintumėte, kodėl šis sujungimas yra būtinas,
# ypač jei jis sujungia atnaujintą ankstesnį srautą į temų šaką.
#
# Eilutės, prasidedančios „#“, bus ignoruojamos, o tuščias pranešimas bus nutrauktas
# įsipareigoti.

Galite modifikuoti komentarus arba priimti numatytuosius. Sujungimo išvestyje turėtų būti rodomi tokie rezultatai:

„Rekursinės“ strategijos sujungimas.
funkcija.txt | 2 ++
Pakeistas 1 failas, 2 įterpimai (+)
sukurti režimo 100644 funkciją.txt

Po sujungimo turite šią sąlygą:

Jei patikrinsite žurnalus, rasite:

$ git būsena
Filialo kapitonas
nieko neįsipareigoti, darbo katalogas švarus
 
$ git žurnalas - tiesioginis
46539a3 C5: Sujungti šakos „ypatybes“
2031b83 C4: modifikuotas kapitonas
93d220b C3: 2 funkcija
ad6ddb9 C2: 1 funkcija
1c0b64c C1: pateiktas kodas
ec0fb48 C0: pradėtas projektas

Sėkmingai sujungėte pakeitimus. Tačiau funkcijų šaka vis dar yra.

$ git filialas -a
funkcijos
* meistras

Galite jį ištrinti naudodami šią komandą:

$ git filialas -d funkcijos

Jei patikrinsite dabar, turėtumėte pamatyti tik pagrindinį filialą:

$ git filialas -a
* meistras

Išvada

Būtinai reguliariai tikrinkite, ar nėra nenaudojamų šakų, ir jas ištrinkite. Norite, kad saugykla būtų švari, kad ją būtų lengva naršyti ir suprasti.

Papildoma literatūra:

Įdiekite naujausią „OpenRA“ strategijos žaidimą „Ubuntu Linux“
„OpenRA“ yra „Free / Free Real Time Strategy“ žaidimų variklis, atkuriantis ankstyvuosius „Westwood“ žaidimus, tokius kaip klasikinis „Command & Conqu...
Įdiekite naujausią „Dolecin Emulator“, skirtą „Gamecube“ ir „Wii“, sistemoje „Linux“
„Delfinų emuliatorius“ leidžia žaisti pasirinktus „Gamecube“ ir „Wii“ žaidimus „Linux“ asmeniniuose kompiuteriuose (PC). „Dolphin Emulator“ yra laisv...
Kaip naudoti „GameConqueror Cheat Engine“ sistemoje „Linux“
Straipsnyje pateikiamas „GameConqueror“ apgaulės variklio naudojimo „Linux“ vadove. Daugelis žaidėjų, žaidžiančių sistemoje „Windows“, dažnai naudoja ...