Grunnleggende om Git Branching
Evnen til å enkelt forgrene seg er en av de beste funksjonene i Git. Å lage filialer i andre versjonskontrollsystemer kan være dyrt når det gjelder plass og behandlingskrav. Git-forgrening er effektiv. Så brukere er mer tilbøyelige til å bruke filialer i Git.
En filialarbeidsflyt
La oss anta at du startet et nytt prosjekt kalt myvideogame. Den har en enkelt gren. Standardnavnet til den første grenen i Git kalles master. Det opprettes automatisk. La oss lage myvideogame Git repository.
$ mkdir myvideogame$ cd myvideogame
$ git init
Du har opprettet et tomt Git-arkiv. La oss legge til designet vårt.txt-fil med litt tekst i.
$ echo "Designbeslutning 1: Legg til bilder" >> design.tekst$ echo "Design Decision 2: Write Code" >> 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: Modified Design File"
Hvis du sjekker historikken, finner du:
$ git log --online6a09bd6 C1: Modifisert designfil
5f18d89 C0: Lagt til designfil
Hvis du sjekker Git-status og alle grener som ble opprettet (ved hjelp av kommandoen: git branch -a), ser du:
$ git-statusPå grenmester
ingenting å begå, arbeider katalogen ren
$ git gren -a
* mester
For øyeblikket har du følgende situasjon:
Du har gjort to forpliktelser i mastergrenen.
La oss anta at du har funnet feil i spilletesten din, men du vil ikke løse problemet i hovedgrenen fordi du ikke vil rote med det originale designet ennå. Så du kan opprette en ny gren som heter bugfix:
$ git branch bugfixNå hvis du sjekker alle grener:
$ git gren -afeilretting
* mester
Nå har du opprettet en ny gren som heter bugfix. Situasjonen kan visualiseres slik:
Stjernen (*) ved siden av hovedgrenen betyr imidlertid at du fortsatt er i mesteren. Hvis du gjør endringer, vil den fortsatt gå inn i hovedgrenen. Du kan bruke kassen til å endre grener:
$ git checkout bugfixByttet til gren 'bugfix'
Du kan sjekke hvilken gren du bruker med status eller “gren -a” kommando:
$ git-statusPå feilrettingen på grenen
ingenting å begå, arbeider katalogen ren
$ git gren -a
* feilretting
herre
La oss nå fikse feilen:
$ echo "Bug Fix 1" >> design.tekst$ git add -A
$ git commit -m "C2: Bug Fixed 1"
Du har opprettet en situasjon som denne:
Hovedgrenen har ikke C2-endringen. Du kan enkelt bekrefte dette ved å sjekke historien til de to grenene.
Først historien til bugfix-grenen:
$ git-statusPå feilrettingen på grenen
ingenting å begå, arbeider katalogen ren
$ git log --online
e8f615b C2: Feil løst 1
6a09bd6 C1: Modifisert designfil
5f18d89 C0: Lagt til designfil
Deretter kan du bytte til hovedfilial og sjekke historikken:
$ git checkout masterByttet til gren 'master'
$ git-status
På grenmester
ingenting å begå, arbeider katalogen ren
$ git log --online
6a09bd6 C1: Modifisert designfil
5f18d89 C0: Lagt til designfil
Du kan se at hovedgrenen ikke har endringene fra bugfix-grenen.
Du kan alltid opprette en ny gren fra den nåværende filialen du befinner deg i. Anta at du vil opprette en annen gren som inneholder eksperimentelle funksjoner. Du kan opprette grenen fra master og legge til eksperimentelle funksjoner i den:
$ git-statusPå grenmester
ingenting å begå, arbeider katalogen ren
$ git gren eksperimentell
$ git checkout eksperimentelt
Byttet til gren 'eksperimentell'
$ git-status
På eksperimentell gren
ingenting å begå, arbeider katalogen ren
$ echo "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 historikken til den eksperimentelle grenen din, ser du:
$ git-statusPå eksperimentell gren
ingenting å begå, arbeider katalogen ren
$ git log --online
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 hovedgren, ser den ikke feilreparasjonsendringene. Du har følgende situasjon:
Konklusjon
Gratulerer! Du har lært hvordan du forgrener deg.
Git-grener er enkle og raske å lage. Det er en av grunnene bak Gits popularitet. Hvis du vil bli en dyktig Git-bruker, må du bli dyktig i Git-forgrening.
Videre studier:
https: // git-scm.com / book / no / v2 / Git-Branching-Basic-Branching-and-Merging