Grunnleggende om Git -sammenslåing og sletting av grener

Basics Git Merging



Forgrening kan hjelpe deg med å holde arbeidet organisert. Du må imidlertid kunne slå sammen arbeidet ditt for å gjøre arbeidet sammenhengende. Hvis du aldri slår sammen og sletter grenene, kan historien din bli for kaotisk til å forstå.

Arbeider med sammenslåing og filialsletting

La oss først lage en hovedgren, sette inn noen få forpliktelser, lage en ny gren som heter funksjoner, legge til noen forpliktelser, så komme tilbake til å mestre og forplikte seg igjen. Her er kommandoene:







$mkdirmitt spill
$CDmitt spill
$git init
$kastet ut 'Design Decision 1: Brainstarm' >>design.txt
$git legge til -TIL
$git commit -m 'C0: Startet prosjekt'
$kastet ut 'Design Decision 2: Write Code' >>design.txt
$git legge til -TIL
$git commit -m 'C1: innsendt kode'
$git grenfunksjoner
$git checkoutfunksjoner
$kastet ut 'Legg til funksjon 1' >>feature.txt
$git legge til -TIL
$git commit -m 'C2: Feature 1'
$kastet ut 'Legg til funksjon 2' >>feature.txt
$git legge til -TIL
$git commit -m 'C3: Feature 2'
$git checkoutherre
$kastet ut 'Modifisering av master igjen' >>design.txt
$git legge til -TIL
$git commit -m 'C4: Master Modified'

Kommandoene ovenfor skapte følgende situasjon:





Du kan sjekke historien til de to grenene for å se hvilke forpliktelser de har:





$git -status
På filialmester
ingenting å forplikte seg, arbeidsmappen er ren
$git -logg --en linje
2031b83 C4: Master modifisert
1c0b64c C1: Innsendt kode

$git checkoutfunksjoner
Byttet til gren'funksjoner'

$git -logg --en linje
93d220b C3: Funksjon2
ad6ddb9 C2: Funksjon1
1c0b64c C1: Innsendt kode
ec0fb48 C0: Startet prosjekt

La oss anta at du vil bringe alle endringene fra funksjonsgrenen til vår hovedgren. Du må starte prosessen fra destinasjonen for sammenslåingen. Fordi vi ønsker å gå inn i hovedgrenen, må du starte prosessen derfra. Så la oss sjekke hovedgrenen:

$git checkoutherre
Byttet til gren'herre'

$git -status
På filialmester
ingenting å forplikte seg, arbeidsmappen er ren

La oss nå lage sammenslåingen:



$git fusjonfunksjoner

Hvis det ikke er noen konflikter i sammenslåingen, får du et tekstredigeringsprogram åpent med kommentarene:

Slå sammen gren'funksjoner'

# Skriv inn en forpliktelsesmelding for å forklare hvorfor denne sammenslåingen er nødvendig,
# spesielt hvis den fusjonerer en oppdatert oppstrøms til en emnegren.
#
# Linjer som begynner med '#' blir ignorert, og en tom melding avbrytes
# forpliktelsen.

Du kan endre kommentarene eller godta standardkommentarene. Fletteutgangen skal vise resultater slik:

Sammenslåing foretatt av'tilbakevendende'strategi.
feature.txt| 2++
1 filendret,2innsetting(+)
opprett modus100644feature.txt

Etter sammenslåingen har du følgende betingelse:

Hvis du sjekker loggene, finner du:

$git -status
På filialmester
ingenting å forplikte seg, arbeidsmappen er ren

$git -logg --en linje
46539a3 C5: Slå sammen gren'funksjoner'
2031b83 C4: Master modifisert
93d220b C3: Funksjon2
ad6ddb9 C2: Funksjon1
1c0b64c C1: Innsendt kode
ec0fb48 C0: Startet prosjekt

Du har slått sammen endringene. Funksjonsgrenen er imidlertid fremdeles tilstede.

$git gren -til
funksjoner
*herre

Du kan slette den med følgende kommando:

$git gren -dfunksjoner

Hvis du sjekker nå, bør du bare se hovedgrenen:

$git gren -til
*herre

Konklusjon

Sørg for at du regelmessig ser etter ubrukte grener og sletter dem. Du vil holde depotet rent for å gjøre det enkelt å navigere og forstå.

Videre lesning: