Grunderna i Git -sammanslagning och radering av grenar

Basics Git Merging



Förgrening kan hjälpa dig att hålla ditt arbete organiserat. Du måste dock kunna slå samman ditt arbete för att göra arbetet sammanhängande. Om du aldrig slår samman och tar bort grenarna kan din historia bli för kaotisk för att förstå.

Arbeta med sammanslagning och filialradering

Låt oss först skapa en huvudgren, lägga in några åtaganden, skapa en ny gren som kallas funktioner, lägg till några åtaganden, sedan komma tillbaka till master och engagera igen. Här är kommandona:







$mkdirmitt spel
$CDmitt spel
$git init
$kastade ut 'Designbeslut 1: Brainstarm' >>design.txt
$git lägg till -TILL
$git begå -m 'C0: Startat projekt'
$kastade ut 'Designbeslut 2: Skriv kod' >>design.txt
$git lägg till -TILL
$git begå -m 'C1: Inlämnad kod'
$git grenfunktioner
$git checkoutfunktioner
$kastade ut 'Lägg till funktion 1' >>feature.txt
$git lägg till -TILL
$git begå -m 'C2: Feature 1'
$kastade ut 'Lägg till funktion 2' >>feature.txt
$git lägg till -TILL
$git begå -m 'C3: Feature 2'
$git checkoutbemästra
$kastade ut 'Modifiera mästaren igen' >>design.txt
$git lägg till -TILL
$git begå -m 'C4: Master Modified'

Kommandona ovan skapade följande situation:





Du kan kolla historiken för de två grenarna för att se vilka åtaganden de har:





$git -status
På filialmästare
inget att göra, arbetskatalogen ren
$git -logg --en linje
2031b83 C4: Master modifierad
1c0b64c C1: Skickad kod

$git checkoutfunktioner
Bytte till gren'funktioner'

$git -logg --en linje
93d220b C3: Funktion2
ad6ddb9 C2: Funktion1
1c0b64c C1: Skickad kod
ec0fb48 C0: Startat projekt

Låt oss nu anta att du vill föra alla ändringar från funktionsgrenen till vår huvudgren. Du måste starta processen från sammanslagningens destination. Eftersom vi vill gå samman i huvudgrenen måste du initiera processen därifrån. Så låt oss kolla in huvudgrenen:

$git checkoutbemästra
Bytte till gren'bemästra'

$git -status
På filialmästare
inget att göra, arbetskatalogen ren

Låt oss nu skapa sammanslagningen:



$git slå sammanfunktioner

Om det inte finns några konflikter i sammanslagningen får du en textredigerare som öppnar med kommentarerna:

Slå samman gren'funktioner'

# Ange ett bindande meddelande för att förklara varför denna sammanslagning är nödvändig,
# särskilt om det slår samman en uppdaterad uppströms till en ämnesgren.
#
# Rader som börjar med '#' ignoreras och ett tomt meddelande avbryts
# åtagandet.

Du kan ändra kommentarerna eller acceptera de vanliga. Sammanslagningsutmatningen ska visa resultat så här:

Sammanfogning gjord av'rekursiv'strategi.
feature.txt| 2++
1 filändrats,2insättningar(+)
skapa läge100644feature.txt

Efter sammanslagningen har du följande villkor:

Om du kontrollerar loggarna hittar du:

$git -status
På filialmästare
inget att göra, arbetskatalogen ren

$git -logg --en linje
46539a3 C5: Slå ihop gren'funktioner'
2031b83 C4: Master modifierad
93d220b C3: Funktion2
ad6ddb9 C2: Funktion1
1c0b64c C1: Skickad kod
ec0fb48 C0: Startat projekt

Du har lyckats slå samman ändringarna. Funktionsgrenen finns dock fortfarande kvar.

$git gren -till
funktioner
*bemästra

Du kan ta bort det med följande kommando:

$git gren -dfunktioner

Om du kontrollerar nu bör du bara se huvudgrenen:

$git gren -till
*bemästra

Slutsats

Se till att du regelbundet söker efter oanvända grenar och tar bort dem. Du vill hålla ditt arkiv rent för att göra det enkelt att navigera och förstå.

Vidare läsning: