Grundlæggende om gitfusion og sletning af filialer

Basics Git Merging



Forgrening kan hjælpe dig med at holde dit arbejde organiseret. Du skal dog være i stand til at flette dit arbejde for at gøre arbejdet sammenhængende. Hvis du aldrig fletter og sletter filialerne, kan din historie blive for kaotisk til at forstå.

Arbejde med fletning og filialsletning

Lad os først oprette en mastergren, indsætte et par forpligtelser, oprette en ny gren kaldet funktioner, tilføje et par forpligtelser, derefter vende tilbage til mestre og forpligte igen. Her er kommandoerne:







$mkdirmit spil
$CDmit spil
$git init
$smed ud 'Design Beslutning 1: Brainstarm' >>design.txt
$git tilføj -TIL
$git commit -m 'C0: Startet projekt'
$smed ud 'Designbeslutning 2: Skriv kode' >>design.txt
$git tilføj -TIL
$git commit -m 'C1: indsendt kode'
$git grenfunktioner
$git checkoutfunktioner
$smed ud 'Tilføj funktion 1' >>feature.txt
$git tilføj -TIL
$git commit -m 'C2: Feature 1'
$smed ud 'Tilføj funktion 2' >>feature.txt
$git tilføj -TIL
$git commit -m 'C3: Feature 2'
$git checkoutmestre
$smed ud 'Modificering af master igen' >>design.txt
$git tilføj -TIL
$git commit -m 'C4: Master ændret'

Ovenstående kommandoer skabte følgende situation:





Du kan kontrollere historien om de to grene for at se, hvilke forpligtelser de har:





$git status
På filialmester
intet at begå, arbejdskatalog rent
$git log --online
2031b83 C4: Master ændret
1c0b64c C1: indsendt kode

$git checkoutfunktioner
Skiftet til gren'funktioner'

$git log --online
93d220b C3: Funktion2
ad6ddb9 C2: Funktion1
1c0b64c C1: indsendt kode
ec0fb48 C0: Startet projekt

Lad os nu antage, at du vil bringe alle ændringerne fra funktionsgrenen til vores hovedgren. Du bliver nødt til at starte processen fra destinationen for fusionen. Fordi vi vil fusionere ind i hovedgrenen, skal du starte processen derfra. Så lad os tjekke hovedgrenen:

$git checkoutmestre
Skiftet til gren'mestre'

$git status
På filialmester
intet at begå, arbejdskatalog rent

Lad os nu oprette fusionen:



$git fusionfunktioner

Hvis der ikke er konflikter i fusionen, får du en tekstredigerer åben med kommentarerne:

Flet gren'funktioner'

# Indtast venligst en forpligtelsesbesked for at forklare, hvorfor denne fletning er nødvendig,
# især hvis det fusionerer en opdateret opstrøms til en emnegren.
#
# Linjer der starter med '#' ignoreres, og en tom besked afbrydes
# forpligtelsen.

Du kan ændre kommentarerne eller acceptere standardkommentarer. Fletteoutput skal vise resultater som denne:

Fletning foretaget af'rekursiv'strategi.
feature.txt| 2++
1 filændret,2indsættelser(+)
oprette tilstand100644feature.txt

Efter fusionen har du følgende betingelse:

Hvis du tjekker logfilerne, finder du:

$git status
På filialmester
intet at begå, arbejdskatalog rent

$git log --online
46539a3 C5: Flet gren'funktioner'
2031b83 C4: Master ændret
93d220b C3: Funktion2
ad6ddb9 C2: Funktion1
1c0b64c C1: indsendt kode
ec0fb48 C0: Startet projekt

Du har slået ændringerne sammen. Funktionsgrenen er dog stadig til stede.

$git gren -til
funktioner
*mestre

Du kan slette det med følgende kommando:

$git gren -dfunktioner

Hvis du tjekker nu, skal du kun se hovedgrenen:

$git gren -til
*mestre

Konklusion

Sørg for regelmæssigt at tjekke for ubrugte grene og slette dem. Du vil gerne holde dit lager rent for at gøre det let at navigere og forstå.

Yderligere læsning: