Werken met samenvoegen en vertakking verwijderen
Laten we eerst een master-branch maken, een paar commits plaatsen, een nieuwe branch maken met de naam features, een paar commits toevoegen, dan terugkomen naar de master en opnieuw committen. Dit zijn de commando's:
$ mkdir mijngame$ cd mijnspel
$ git init
$ echo "Ontwerpbeslissing 1: Brainstarm" >> ontwerp.tekst
$ git add -A
$ git commit -m "C0: Gestart project"
$ echo "Ontwerpbeslissing 2: Schrijf code" >> ontwerp.tekst
$ git add -A
$ git commit -m "C1: Ingediende code"
$ git branch-functies
$ git checkout-functies
$ echo "Functie 1 toevoegen" >> functie.tekst
$ git add -A
$ git commit -m "C2: Functie 1"
$ echo "Functie 2 toevoegen" >> functie.tekst
$ git add -A
$ git commit -m "C3: Functie 2"
$ git checkout master
$ echo "Master opnieuw wijzigen" >> ontwerp.tekst
$ git add -A
$ git commit -m "C4: Master gewijzigd"
De bovenstaande commando's hebben de volgende situatie gecreëerd:
Je kunt de geschiedenis van de twee branches bekijken om te zien welke commits ze hebben:
$ git-statusOp branch master
niets te committen, werkmap opschonen
$ git log --oneline
2031b83 C4: Master gewijzigd
1c0b64c C1: Ingediende code
$ git checkout-functies
Overgeschakeld naar branch 'features'
$ git log --oneline
93d220b C3: Functie 2
ad6ddb9 C2: Functie 1
1c0b64c C1: Ingediende code
ec0fb48 C0: Gestart project
Laten we nu aannemen dat je alle wijzigingen van de features branch naar onze master branch wilt brengen. U moet het proces starten vanaf de bestemming van de samenvoeging. Omdat we willen mergen in de master branch, moet je het proces vanaf daar starten. Dus laten we eens kijken naar de master branch:
$ git checkout masterOvergeschakeld naar tak 'master'
$ git-status
Op branch master
niets te committen, werkmap opschonen
Laten we nu de samenvoeging maken:
$ git merge-functiesAls er geen conflicten zijn bij het samenvoegen, krijgt u een teksteditor met de opmerkingen:
Branch 'functies' samenvoegen# Voer een commit-bericht in om uit te leggen waarom deze samenvoeging nodig is,
# vooral als het een bijgewerkte upstream samenvoegt in een topic branch.
#
# Regels die beginnen met '#' worden genegeerd en een leeg bericht wordt afgebroken
# de commit.
U kunt de opmerkingen wijzigen of de standaard opmerkingen accepteren. De samenvoeguitvoer zou de volgende resultaten moeten weergeven:
Samenvoeging gemaakt door de 'recursieve' strategie.voorzien zijn van.txt | 2 ++
1 bestand gewijzigd, 2 invoegingen (+)
aanmaakmodus 100644-functie.tekst
Na de samenvoeging heb je de volgende voorwaarde:
Als u de logboeken bekijkt, vindt u:
$ git-statusOp branch master
niets te committen, werkmap opschonen
$ git log --oneline
46539a3 C5: Vertakking 'functies' samenvoegen
2031b83 C4: Master gewijzigd
93d220b C3: Functie 2
ad6ddb9 C2: Functie 1
1c0b64c C1: Ingediende code
ec0fb48 C0: Gestart project
Je hebt de wijzigingen succesvol samengevoegd. De functietak is echter nog steeds aanwezig.
$ git branch -aKenmerken
* meester
Je kunt het verwijderen met het volgende commando:
$ git branch -d functiesAls je nu aanvinkt, zou je alleen de master branch moeten zien:
$ git branch -a* meester
Conclusie
Controleer regelmatig op ongebruikte takken en verwijder ze. U wilt uw repository schoon houden zodat het gemakkelijk te navigeren en te begrijpen is.
Verder lezen:
- https://git-scm.com/book/nl/v2/Git-Branching-Basic-Branching-and-Merging