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å.