Grunnleggende om Git Branch

Grunnleggende om Git Branch

Grunnleggende om git forgrening

Evnen til å enkelt gren er en av de beste funksjonene i Git. Å lage filialer i andre versjonskontrollsystemer kan være dyrt når det gjelder krav til plass og prosessering. Git -forgrening er effektiv. Så brukere er mer utsatt for å bruke grener i git.

En forgrenende arbeidsflyt

La oss anta at du startet et nytt prosjekt som heter MyVideogame. Den har en enkelt gren. Standardnavnet på den første grenen i Git heter Master. Den er automatisk opprettet. La oss lage MyVideogame Git Repository.

$ mkdir myVideogame
$ CD MyVideogame
$ git init

Du har opprettet et tomt git -depot. La oss legge til designen vår.txt -fil med litt tekst i den.

$ ekko "Designbeslutning 1: Legg til bilder" >> Design.tekst
$ ekko "Designbeslutning 2: Skriv kode" >> Design.tekst
$ git add -a
$ git commit -m "C0: Lagt til designfil"

La oss legge til noen flere endringer:

$ ECHO "Design Decision 3: Test Game" >> Design.tekst
$ git add -a
$ git commit -m "c1: modifisert designfil"

Hvis du sjekker historien, finner du:

$ git log --oneline
6A09BD6 C1: Modifisert designfil
5F18D89 C0: Lagt til designfil

Hvis du sjekker git -status og alle grener som ble opprettet (ved hjelp av kommandoen: git gren -a), ser du:

$ git status
På grenmester
Ingenting å begå, arbeidskatalog ren
$ git gren -a
* mester

For øyeblikket har du følgende situasjon:

Du har gjort to forpliktelser i mastergrenen.

La oss anta, du har funnet feil i spilltestingen din, men du vil ikke ta opp problemet i mastergrenen fordi du ikke vil rote med den originale designen ennå. Så du kan opprette en ny gren som heter Bugfix:

$ git gren bugfix

Nå hvis du sjekker alle grener:

$ git gren -a
feilretting
* mester

Nå har du opprettet en ny gren som heter Bugfix. Situasjonen kan visualiseres som dette:

Stjernen (*) ved siden av mastergrenen betyr imidlertid at du fremdeles er i mesteren. Hvis du gjør endringer, vil det fortsatt gå inn i mastergrenen. Du kan bruke kassen -kommandoen til å endre filialer:

$ git checkout bugfix
Byttet til grenen 'bugfix'

Du kan sjekke hvilken gren du bruker med status eller “filial -a” -kommando:

$ git status
På gren bugfix
Ingenting å begå, arbeidskatalog ren
$ git gren -a
* feilretting
herre

La oss nå fikse feilen:

$ ekko "Bug Fix 1" >> Design.tekst
$ git add -a
$ git commit -m "C2: bug fast 1"

Du har skapt en situasjon som denne:

Mastergrenen har ikke C2 -endringen. Du kan enkelt bekrefte dette ved å sjekke historien til de to grenene.

Først historien til Bugfix -grenen:

$ git status
På gren bugfix
Ingenting å begå, arbeidskatalog ren
$ git log --oneline
E8F615B C2: Feil fast 1
6A09BD6 C1: Modifisert designfil
5F18D89 C0: Lagt til designfil

Da kan du bytte til Master Branch og sjekke historien:

$ git Checkout Master
Byttet til filial 'master'
$ git status
På grenmester
Ingenting å begå, arbeidskatalog ren
$ git log --oneline
6A09BD6 C1: Modifisert designfil
5F18D89 C0: Lagt til designfil

Du kan se mastergrenen ikke har endringene fra Bugfix -grenen.

Du kan alltid opprette en ny gren fra den nåværende grenen du er lokalisert i. Anta at du vil lage en annen gren som vil inneholde eksperimentelle funksjoner. Du kan opprette grenen fra Master og legge til eksperimentelle funksjoner til den:

$ git status
På grenmester
Ingenting å begå, arbeidskatalog ren
$ git gren eksperimentell
$ git checkout eksperimentell
Byttet til grenen 'eksperimentell'
$ git status
På grenens eksperimentelle
Ingenting å begå, arbeidskatalog ren
$ ekko "Legge til eksperimentfunksjoner" >> design.tekst
$ git add -a
$ git commit -m "C3: Lagt til eksperimentelle funksjoner"
[Eksperimentell 637BC20] C3: Lagt til eksperimentelle funksjoner
1 Fil endret, 1 innsetting (+)

Hvis du sjekker historien til din eksperimentelle gren, vil du se:

$ git status
På grenens eksperimentelle
Ingenting å begå, arbeidskatalog ren
$ git log --oneline
637BC20 C3: Lagt til eksperimentelle funksjoner
6A09BD6 C1: Modifisert designfil
5F18D89 C0: Lagt til designfil

Du vil merke at du ikke har C2 -forpliktelsen som ble opprettet i Bugfix -grenen. Fordi eksperimentell gren er opprettet fra Master Branch, ser den ikke bugfix -endringene. Du har følgende situasjon:

Konklusjon

Gratulerer! Du har lært hvordan du skal gren.

Git -grener er enkle og raske å lage. Det er en av grunnene til Gits popularitet. Hvis du vil bli en dyktig Git -bruker, må du bli dyktig i Git -forgrening.

Videre studier:

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