Git

Grundlæggende om Git Branch

Grundlæggende om Git Branch

Grundlæggende om Git-forgrening

Evnen til let at forgrene sig er en af ​​de bedste funktioner i Git. Oprettelse af filialer i andre versionskontrolsystemer kan være dyrt med hensyn til plads og behandlingskrav. Git-forgrening er effektiv. Så brugerne er mere tilbøjelige til at bruge filialer i Git.

En forgreningsworkflow

Lad os antage, at du startede et nyt projekt kaldet myvideogame. Det har en enkelt gren. Standardnavnet på den oprindelige gren i Git kaldes master. Det oprettes automatisk.  Lad os oprette myvideogame Git-arkivet.

$ mkdir myvideogame
$ cd myvideogame
$ git init

Du har oprettet et tomt Git-lager. Lad os tilføje vores design.txt-fil med noget tekst i.

$ echo "Designbeslutning 1: Tilføj billeder" >> design.txt
$ echo "Design Decision 2: Write Code" >> design.txt
$ git add -A
$ git commit -m "C0: Tilføjet designfil"

Lad os tilføje nogle flere ændringer:

$ echo "Design Decision 3: Test Game" >> design.txt
$ git add -A
$ git commit -m "C1: Modificeret designfil"

Hvis du tjekker historikken, finder du:

$ git log - online
6a09bd6 C1: Modificeret designfil
5f18d89 C0: Tilføjet designfil

Hvis du kontrollerer Git-status og alle grene, der blev oprettet (ved hjælp af kommandoen: git branch -a), ser du:

$ git status
På filialmester
intet at begå, arbejder bibliotek ren
 
$ git gren -a
* mester

I øjeblikket har du følgende situation:

Du har forpligtet dig to i mestergrenen.

Lad os antage, at du har fundet fejl i din spilprøvning, men du vil ikke løse problemet i mastergrenen, fordi du endnu ikke vil rode med det originale design. Så du kan oprette en ny gren kaldet bugfix:

$ git gren bugfix

Nu hvis du tjekker alle grene:

$ git gren -a
fejlrettelse
* mester

Nu har du oprettet en ny gren kaldet bugfix. Situationen kan visualiseres som denne:

Stjernen (*) ved siden af ​​mastergrenen betyder dog, at du stadig er i mesteren. Hvis du foretager ændringer, vil den stadig gå ind i mastergrenen. Du kan bruge checkout-kommandoen til at ændre grene:

$ git checkout bugfix
Skiftet til gren 'bugfix'

Du kan kontrollere, hvilken gren du bruger med status eller kommando "gren -a":

$ git status
På gren bugfix
intet at begå, arbejder bibliotek ren
 
$ git gren -a
* fejlrettelse
mestre

Lad os nu rette fejlen:

$ echo "Bug Fix 1" >> design.txt
$ git add -A
$ git commit -m "C2: Bug Fixed 1"

Du har oprettet en situation som denne:

Mastergrenen har ikke C2-ændringen. Du kan nemt kontrollere dette ved at kontrollere historien for de to grene.

Først historien om bugfix-grenen:

$ git status
På gren bugfix
intet at begå, arbejder bibliotek ren
 
$ git log - online
e8f615b C2: Fejlret 1
6a09bd6 C1: Modificeret designfil
5f18d89 C0: Tilføjet designfil

Derefter kan du skifte til mastergren og kontrollere dens historie:

$ git checkout master
Skiftet til gren 'master'
 
$ git status
På filialmester
intet at begå, arbejder bibliotek ren
 
$ git log - online
6a09bd6 C1: Modificeret designfil
5f18d89 C0: Tilføjet designfil

Du kan se, at hovedgrenen ikke har ændringer fra bugfix-grenen.

Du kan altid oprette en ny filial fra den nuværende filial, du er placeret i. Antag, at du vil oprette en anden gren, der indeholder eksperimentelle funktioner. Du kan oprette grenen fra master og tilføje eksperimentelle funktioner til den:

$ git status
På filialmester
intet at begå, arbejder bibliotek ren
 
$ git gren eksperimentel
$ git checkout eksperimentelt
Skiftet til gren 'eksperimentel'
$ git status
På gren eksperimentel
intet at begå, arbejder bibliotek ren
 
$ echo "Tilføjelse af eksperimentfunktioner" >> design.txt
 
$ git add -A
 
$ git commit -m "C3: Tilføjede eksperimentelle funktioner"
[eksperimentel 637bc20] C3: Tilføjet eksperimentelle funktioner
1 fil ændret, 1 indsættelse (+)

Hvis du tjekker historikken for din eksperimentelle gren, ser du:

$ git status
På gren eksperimentel
intet at begå, arbejder bibliotek ren
 
$ git log - online
637bc20 C3: Tilføjede eksperimentelle funktioner
6a09bd6 C1: Modificeret designfil
5f18d89 C0: Tilføjet designfil

Du vil bemærke, at du ikke har C2-forpligtelsen, som blev oprettet i bugfix-grenen. Fordi eksperimentel gren oprettes fra hovedfilial, ser den ikke bugfix-ændringerne. Du har følgende situation:

Konklusion

Tillykke! Du har lært at forgrene dig.

Git-grene er nemme og hurtige at lave. Det er en af ​​grundene til Gits popularitet. Hvis du vil blive en dygtig Git-bruger, skal du blive dygtig i Git-forgrening.

Yderligere studier:

https: // git-scm.com / book / da / v2 / Git-Branching-Basic-Branching-and-Merging

Open Source-porte med kommercielle spilmotorer
Gratis, open source og cross-platform spilmotorgendringer kan bruges til at spille gamle såvel som nogle af de temmelig nylige spiltitler. Denne artik...
Bedste kommandoliniespil til Linux
Kommandolinjen er ikke kun din største allierede, når du bruger Linux, den kan også være kilde til underholdning, fordi du kan bruge den til at spille...
Bedste apps til Gamepad Mapping til Linux
Hvis du kan lide at spille spil på Linux med en gamepad i stedet for et typisk tastatur- og musesystem, er der nogle nyttige apps til dig. Mange pc-sp...