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 checkoutmestreSkiftet 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 statusPå 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 -tilfunktioner
*mestre
Du kan slette det med følgende kommando:
$git gren -dfunktionerHvis 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å.