Grunnleggende om git sammenslåing og slette grener

Grunnleggende om git sammenslåing og slette grener
Forgrening kan hjelpe deg med å holde arbeidet ditt organisert. Imidlertid må du kunne slå sammen arbeidet ditt for å gjøre arbeidet sammenhengende. Hvis du aldri smelter sammen og sletter grenene, kan historien din bli for kaotisk til å forstå.

Arbeider med sammenslåing og gren sletting

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

$ mkdir mygame
$ CD MyGame
$ git init
$ ekko "Designbeslutning 1: Brainstarm" >> Design.tekst
$ git add -a
$ git commit -m "C0: startet prosjekt"
$ ekko "Designbeslutning 2: Skriv kode" >> Design.tekst
$ git add -a
$ git commit -m "c1: sendt kode"
$ git filialfunksjoner
$ git kassafunksjoner
$ ekko "Legg til funksjon 1" >> funksjon.tekst
$ git add -a
$ git commit -m "C2: funksjon 1"
$ ekko "legg til funksjon 2" >> funksjon.tekst
$ git add -a
$ git commit -m "C3: funksjon 2"
$ git Checkout Master
$ ECHO "Endring Master Again" >> Design.tekst
$ git add -a
$ git commit -m "C4: master modifisert"

Ovennevnte kommandoer skapte følgende situasjon:

Du kan sjekke historien til de to grenene for å se hva som begår de har:

$ git status
På grenmester
Ingenting å begå, arbeidskatalog ren
$ git log --oneline
2031B83 C4: Master Modified
1C0B64C C1: Sendt kode
$ git kassafunksjoner
Byttet til gren 'funksjoner'
$ git log --oneline
93d220b C3: Funksjon 2
ad6DDB9 C2: Funksjon 1
1C0B64C C1: Sendt kode
EC0FB48 C0: Startet prosjekt

La oss nå anta, du vil bringe alle endringene fra funksjonsgrenen til vår mastergren. Du må starte prosessen fra sammenslåingen av destinasjonen. Fordi vi vil slå sammen til mastergrenen, må du sette i gang prosessen derfra. Så la oss sjekke ut mastergrenen:

$ git Checkout Master
Byttet til filial 'master'
$ git status
På grenmester
Ingenting å begå, arbeidskatalog ren

La oss nå skape sammenslåingen:

$ git fusjonsfunksjoner

Hvis det ikke er noen konflikter i sammenslåingen, vil du få en tekstredigerer åpent opp med kommentarene:

Fusjonsgren 'Funksjoner'
# Vennligst 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 starter med '#' vil bli ignorert, og en tom melding aborterer
# forpliktelsen.

Du kan endre kommentarene eller godta standardene. Fusjonsutgangen skal vise resultater som dette:

Fusjon laget av den "rekursive" strategien.
trekk.txt | 2 ++
1 fil endret, 2 innsettinger (+)
Opprett modus 100644 -funksjon.tekst

Etter sammenslåingen har du følgende tilstand:

Hvis du sjekker loggene, vil du finne:

$ git status
På grenmester
Ingenting å begå, arbeidskatalog ren
$ git log --oneline
46539a3 C5: Fusjonsgren 'Funksjoner'
2031B83 C4: Master Modified
93d220b C3: Funksjon 2
ad6DDB9 C2: Funksjon 1
1C0B64C C1: Sendt kode
EC0FB48 C0: Startet prosjekt

Du har samlet sammen endringene. Funksjonsgrenen er imidlertid fortsatt til stede.

$ git gren -a
egenskaper
* mester

Du kan slette den med følgende kommando:

$ git gren -d -funksjoner

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

$ git gren -a
* mester

Konklusjon

Forsikre deg om at du regelmessig sjekker for ubrukte grener og sletter dem. Du vil holde depotet ditt rent for å gjøre det enkelt å navigere og forstå.

Videre lesning:

  • https: // git-cm.com/bok/en/v2/git-forgrenings-basisk-forgrening og sammenslåing