„Git“ sujungimo ir šakų ištrynimo pagrindai

Basics Git Merging



Filialas gali padėti organizuoti darbą. Tačiau, kad darbas būtų nuoseklus, turite sugebėti sujungti savo darbą. Jei niekada nesujungiate ir neištrinate filialų, jūsų istorija gali tapti pernelyg chaotiška, kad ją būtų galima suprasti.

Darbas su sujungimu ir filialo ištrynimu

Pirmiausia sukurkime pagrindinę šaką, įdėkime kelis įsipareigojimus, sukurkime naują šaką, vadinamą funkcijomis, pridėkime kelis įsipareigojimus, tada grįžkime prie pagrindinio ir vėl įsipareigokime. Štai komandos:







$mkdirmano žaidimas
$CDmano žaidimas
$git init
$išmetė „1 dizaino sprendimas:„ Brainstarm “ >>dizainas.txt
$pridėk -TO
$git įsipareigoti -m „C0: pradėtas projektas“
$išmetė „2 dizaino sprendimas: parašykite kodą“ >>dizainas.txt
$pridėk -TO
$git įsipareigoti -m „C1: pateiktas kodas“
$gito šakafunkcijos
$git kasafunkcijos
$išmetė „Pridėti 1 funkciją“ >>feature.txt
$pridėk -TO
$git įsipareigoti -m „C2: 1 funkcija“
$išmetė „Pridėti 2 funkciją“ >>feature.txt
$pridėk -TO
$git įsipareigoti -m „C3: 2 funkcija“
$git kasameistras
$išmetė „Vėl keičiamas meistras“ >>dizainas.txt
$pridėk -TO
$git įsipareigoti -m „C4: pagrindinis modifikuotas“

Pirmiau pateiktos komandos sukūrė tokią situaciją:





Galite patikrinti abiejų filialų istoriją ir sužinoti, kokius įsipareigojimus jie turi:





$git būsena
Ant šakos meistro
nieko įsipareigoti, švarus darbo katalogas
$git žurnalas --viena linija
2031b83 C4: pagrindinis modifikuotas
1c0b64c C1: pateiktas kodas

$git kasafunkcijos
Perjungta į šaką'funkcijos'

$git žurnalas --viena linija
93d220b C3: funkcija2
ad6ddb9 C2: funkcija1
1c0b64c C1: pateiktas kodas
ec0fb48 C0: pradėtas projektas

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

$git kasameistras
Perjungta į šaką'meistras'

$git būsena
Ant šakos meistro
nieko įsipareigoti, švarus darbo katalogas

Dabar sukurkime sujungimą:



$git susilietifunkcijos

Jei sujungimo metu nėra konfliktų, atsidarys teksto redaktorius su komentarais:

Sujungti filialą'funkcijos'

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

Galite keisti komentarus arba priimti numatytuosius. Sujungimo išvestis turėtų rodyti tokius rezultatus:

Sujungimas, kurį atliko„rekursinis“strategija.
feature.txt| 2++
1 failąpasikeitė,2įterpimai(+)
sukurti režimą100644feature.txt

Po sujungimo turite tokią sąlygą:

Jei patikrinsite žurnalus, rasite:

$git būsena
Ant šakos meistro
nieko įsipareigoti, švarus darbo katalogas

$git žurnalas --viena linija
46539a3 C5: Sujungti filialą'funkcijos'
2031b83 C4: pagrindinis modifikuotas
93d220b C3: funkcija2
ad6ddb9 C2: funkcija1
1c0b64c C1: pateiktas kodas
ec0fb48 C0: pradėtas projektas

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

$gito šaka
funkcijos
*meistras

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

$gito šaka -dfunkcijos

Jei tikrinate dabar, turėtumėte matyti tik pagrindinę šaką:

$gito šaka
*meistras

Išvada

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

Papildoma literatūra: