Git

Git Branch Grunderna

Git Branch Grunderna

Grunderna i Git Branching

Förmågan att enkelt förgrena sig är en av de bästa funktionerna i Git. Att skapa filialer i andra versionskontrollsystem kan vara dyrt när det gäller utrymmes- och bearbetningskrav. Git-förgrening är effektiv. Så användare är mer benägna att använda filialer i Git.

Ett filialarbete

Låt oss anta att du startade ett nytt projekt som heter myvideogame. Den har en enda gren. Standardnamnet på den ursprungliga filialen i Git kallas master. Det skapas automatiskt.  Låt oss skapa myvideogame Git-arkivet.

$ mkdir myvideogame
$ cd myvideogame
$ git init

Du har skapat ett tomt Git-arkiv. Låt oss lägga till vår design.txt-fil med lite text i.

$ echo "Designbeslut 1: Lägg till bilder" >> design.Text
$ echo "Design Decision 2: Write Code" >> design.Text
$ git add -A
$ git commit -m "C0: Tillagd designfil"

Låt oss lägga till några fler ändringar:

$ echo "Design Decision 3: Test Game" >> design.Text
$ git add -A
$ git commit -m "C1: Modified Design File"

Om du kontrollerar historiken hittar du:

$ git log - online
6a09bd6 C1: Modifierad designfil
5f18d89 C0: Tillagd designfil

Om du kontrollerar Git-status och alla grenar som skapades (med kommandot: git branch -a), ser du:

$ git-status
På filialmästaren
inget att begå, arbetar katalogen ren
 
$ git gren -a
* mästare

För närvarande har du följande situation:

Du har gjort två åtaganden i mastergrenen.

Låt oss anta att du har hittat buggar i ditt speltest, men du vill inte ta itu med problemet i huvudgrenen eftersom du inte vill röra med den ursprungliga designen än. Så du kan skapa en ny gren som heter bugfix:

$ git gren bugfix

Nu om du kontrollerar alla grenar:

$ git gren -a
buggfix
* mästare

Nu har du skapat en ny gren som heter bugfix. Situationen kan visualiseras så här:

Stjärnan (*) bredvid mastergrenen betyder dock att du fortfarande är i master. Om du gör ändringar kommer den fortfarande att gå in i huvudgrenen. Du kan använda kommandot kassa för att ändra grenar:

$ git checkout bugfix
Byt till gren 'bugfix'

Du kan kontrollera vilken gren du använder med status eller "gren -a" -kommando:

$ git-status
På gren bugfix
inget att begå, arbetar katalogen ren
 
$ git gren -a
* buggfix
bemästra

Låt oss nu fixa felet:

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

Du har skapat en sådan situation:

Huvudgrenen har inte C2-ändringen. Du kan enkelt verifiera detta genom att kontrollera historiken för de två filialerna.

Först historien om bugfix-grenen:

$ git-status
På gren bugfix
inget att begå, arbetar katalogen ren
 
$ git log - online
e8f615b C2: Bugg fixat 1
6a09bd6 C1: Modifierad designfil
5f18d89 C0: Lagt till designfil

Sedan kan du växla till huvudgren och kontrollera dess historik:

$ git checkout master
Bytt till filial "master"
 
$ git-status
På filialmästaren
inget att begå, arbetar katalogen ren
 
$ git log - online
6a09bd6 C1: Modifierad designfil
5f18d89 C0: Lagt till designfil

Du kan se att huvudgrenen inte har ändringarna från bugfix-grenen.

Du kan alltid skapa en ny filial från den aktuella filialen du befinner dig i. Antag att du vill skapa en annan gren som innehåller experimentella funktioner. Du kan skapa filialen från master och lägga till experimentella funktioner i den:

$ git-status
På filialmästaren
inget att begå, arbetar katalogen ren
 
$ git gren experimentell
$ git checkout experimentellt
Växlade till filial "experimentell"
$ git-status
På experimentell gren
inget att begå, arbetar katalogen ren
 
$ echo "Lägga till experimentfunktioner" >> design.Text
 
$ git add -A
 
$ git commit -m "C3: Tillagda experimentella funktioner"
[experimentellt 637bc20] C3: Tillagda experimentella funktioner
1 fil ändrad, 1 infogning (+)

Om du kontrollerar historiken för din experimentella gren ser du:

$ git-status
På experimentell gren
inget att begå, arbetar katalogen ren
 
$ git log - online
637bc20 C3: Tillagda experimentella funktioner
6a09bd6 C1: Modifierad designfil
5f18d89 C0: Tillagd designfil

Du kommer att märka att du inte har C2-åtagandet som skapades i bugfix-grenen. Eftersom experimentell gren skapas från huvudgren ser buggfixändringarna inte. Du har följande situation:

Slutsats

Grattis! Du har lärt dig att förgrena dig.

Git grenar är enkla och snabba att göra. Det är en av anledningarna till Gits popularitet. Om du vill bli en skicklig Git-användare måste du bli skicklig i Git-förgrening.

Ytterligare studier:

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

SuperTuxKart för Linux
SuperTuxKart är en fantastisk titel som är utformad för att ge dig Mario Kart-upplevelsen gratis på ditt Linux-system. Det är ganska utmanande och rol...
Battle for Wesnoth Tutorial
Slaget om Wesnoth är ett av de mest populära open source-strategispel som du kan spela just nu. Det här spelet har inte bara utvecklats under mycket l...
0 A.D. Handledning
Av de många strategispelen där ute, 0 A.D. lyckas framstå som en omfattande titel och ett mycket djupt, taktiskt spel trots att det är öppen källkod. ...