Git

Git Branch-basisprincipes

Git Branch-basisprincipes

Basisprincipes van Git-vertakking

De mogelijkheid om gemakkelijk te vertakken is een van de beste eigenschappen van Git. Vertakkingen maken in andere versiebeheersystemen kan duur zijn in termen van ruimte en verwerkingsvereisten. Git-vertakking is efficiënt. Gebruikers zijn dus meer geneigd om branches in Git . te gebruiken.

Een vertakkende workflow

Stel dat je een nieuw project bent begonnen met de naam myvideogame. Het heeft een enkele tak. De standaardnaam van de initiële branch in Git heet master. Het wordt automatisch aangemaakt.  Laten we de myvideogame Git-repository maken.

$ mkdir mijn videogame
$ cd mijnvideogame
$ git init

Je hebt een lege Git-repository gemaakt. Laten we ons ontwerp toevoegen.txt-bestand met wat tekst erin.

$ echo "Ontwerpbeslissing 1: Afbeeldingen toevoegen" >> ontwerp.tekst
$ echo "Ontwerpbeslissing 2: Schrijf code" >> ontwerp.tekst
$ git add -A
$ git commit -m "C0: Ontwerpbestand toegevoegd"

Laten we nog wat wijzigingen toevoegen:

$ echo "Ontwerpbeslissing 3: Testspel" >> ontwerp.tekst
$ git add -A
$ git commit -m "C1: Aangepast ontwerpbestand"

Als u de geschiedenis controleert, vindt u:

$ git log --oneline
6a09bd6 C1: Gewijzigd ontwerpbestand
5f18d89 C0: Ontwerpbestand toegevoegd

Als je de Git-status en alle branches die zijn gemaakt aanvinkt (met het commando: git branch -a), zie je:

$ git-status
Op branch master
niets te committen, werkmap opschonen
 
$ git branch -a
* meester

Momenteel heb je de volgende situatie:

Je hebt twee commits gemaakt in de master branch.

Laten we aannemen dat je bugs hebt gevonden in het testen van je game, maar je wilt het probleem niet in de master branch aanpakken omdat je nog niet met het originele ontwerp wilt rotzooien. Je kunt dus een nieuwe branch maken met de naam bugfix:

$ git branch bugfix

Als je nu alle takken aanvinkt:

$ git branch -a
bugfix
* meester

Nu heb je een nieuwe branch gemaakt met de naam bugfix. De situatie kan als volgt worden gevisualiseerd:

De ster(*) naast de master-branch betekent echter dat je nog steeds in de master bent. Als je wijzigingen aanbrengt, gaat het nog steeds naar de master-branch. U kunt het checkout-commando gebruiken om branches te wijzigen:

$ git checkout bugfix
Overgeschakeld naar branch 'bugfix'

Je kunt controleren welke branch je gebruikt met status of "branch -a" commando:

$ git-status
Op branch bugfix
niets te committen, werkmap opschonen
 
$ git branch -a
* bugfix
meester

Laten we nu de bug oplossen:

$ echo "Bug Fix 1" >> ontwerp.tekst
$ git add -A
$ git commit -m "C2: Bug opgelost 1"

Je hebt een situatie als deze gecreëerd:

De master branch heeft de C2-wijziging niet. U kunt dit eenvoudig verifiëren door de geschiedenis van de twee vestigingen te controleren.

Eerst de geschiedenis van de bugfix-tak:

$ git-status
Op branch bugfix
niets te committen, werkmap opschonen
 
$ git log --oneline
e8f615b C2: Bug opgelost 1
6a09bd6 C1: Gewijzigd ontwerpbestand
5f18d89 C0: Ontwerpbestand toegevoegd

Dan kun je overschakelen naar de master branch en zijn geschiedenis controleren:

$ git checkout master
Overgeschakeld naar tak 'master'
 
$ git-status
Op branch master
niets te committen, werkmap opschonen
 
$ git log --oneline
6a09bd6 C1: Gewijzigd ontwerpbestand
5f18d89 C0: Ontwerpbestand toegevoegd

Je kunt zien dat de master branch niet de wijzigingen heeft van de bugfix branch.

U kunt altijd een nieuw filiaal maken vanuit het huidige filiaal waarin u zich bevindt. Stel dat je een andere branch wilt maken die experimentele functies zal bevatten. U kunt de vertakking van de master maken en er experimentele functies aan toevoegen:

$ git-status
Op branch master
niets te committen, werkmap opschonen
 
$ git branch experimenteel
$ git checkout experimenteel
Overgeschakeld naar branche 'experimenteel'
$ git-status
Op tak experimenteel
niets te committen, werkmap opschonen
 
$ echo "Experimentfuncties toevoegen" >> ontwerp.tekst
 
$ git add -A
 
$ git commit -m "C3: Experimentele functies toegevoegd"
[experimenteel 637bc20] C3: Experimentele functies toegevoegd
1 bestand gewijzigd, 1 invoeging (+)

Als je de geschiedenis van je experimentele branch bekijkt, zie je:

$ git-status
Op tak experimenteel
niets te committen, werkmap opschonen
 
$ git log --oneline
637bc20 C3: Experimentele functies toegevoegd
6a09bd6 C1: Gewijzigd ontwerpbestand
5f18d89 C0: Ontwerpbestand toegevoegd

Je zult merken dat je de C2 commit niet hebt die is gemaakt in de bugfix branch. Omdat de experimentele vertakking is gemaakt vanuit de hoofdvertakking, ziet het de wijzigingen in de bugfix niet. Je hebt de volgende situatie:

Conclusie

Gefeliciteerd! Je hebt geleerd hoe je moet vertakken.

Git-takken zijn gemakkelijk en snel te maken. Het is een van de redenen achter Git's populariteit. Als je een bekwame Git-gebruiker wilt worden, moet je bekwaam worden in Git-vertakking.

Verdere studie:

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

Hoe de muis- en touchpad-instellingen te wijzigen met Xinput in Linux
De meeste Linux-distributies worden standaard geleverd met de bibliotheek "libinput" om invoergebeurtenissen op een systeem af te handelen. Het kan in...
Wijs uw muisknoppen anders toe voor verschillende software met X-Mouse Button Control
Misschien heeft u een tool nodig waarmee u de bediening van uw muis kunt veranderen bij elke applicatie die u gebruikt. Als dit het geval is, kunt u e...
Microsoft Sculpt Touch draadloze muis Review
Ik las onlangs over de Microsoft Sculpt Touch draadloze muis en besloot hem te kopen. Nadat ik het een tijdje had gebruikt, besloot ik mijn ervaring e...