De ultieme gids voor Git Merge en Git Rebase

Welkom bij onze ultieme gids voor de git merge en git rebase commando ‘ s. Deze tutorial zal je alles leren wat je moet weten over het combineren van meerdere branches met Git.

Git Merge

het git merge commando zal alle wijzigingen die gemaakt zijn in de code base op een aparte branch mergen naar je huidige branch als een nieuwe commit.,

de syntaxis van De opdracht is als volgt:

git merge BRANCH-NAME

bijvoorbeeld, als u werkt momenteel in een gemeente met de naam dev en wilt samenvoegen, een nieuwe wijzigingen die zijn aangebracht in een tak met de naam new-features, zou je het volgende commando:

git merge new-features

Opmerking: Als er geen niet-doorgevoerde wijzigingen op uw huidige branch, Git zal niet toestaan dat u om te fuseren tot dat alle wijzigingen in uw huidige branche zijn vastgelegd., Om deze wijzigingen af te handelen, kun je ofwel:

een nieuwe branch aanmaken en de wijzigingen committen

git checkout -b new-branch-namegit add .git commit -m "<your commit message>"

ze Stas

git stash # add them to the stashgit merge new-features # do your mergegit stash pop # get the changes back into your working tree

alle wijzigingen opgeven

git reset --hard # removes all pending changes

Git Rebase

een branch rebasen in Git is een manier om het geheel van een branch naar een ander punt in de tree te verplaatsen. Het eenvoudigste voorbeeld is het verplaatsen van een tak verder in de boom., Stel dat we een branch hebben die afwijkt van de master branch op punt A:

 /o-----o---o--o-----o--------- branch--o-o--A--o---o---o---o----o--o-o-o--- master

wanneer je rebase je kunt verplaatsen als volgt:

 /o-----o---o--o-----o------ branch--o-o--A--o---o---o---o----o--o-o-o master

om te rebasen, zorg ervoor dat je alle commits hebt die je wilt in de rebase in je master branch. Bekijk de branch die u wilt rebasen en typ git rebase master (waar master de branch is waarop u wilt rebasen)., dat bijvoorbeeld een tak die was gebaseerd op een andere tak (noem het kenmerk) is opnieuw ingesteld op master:

 /---o-o branch /---o-o-o-o---o--o------ feature----o--o-o-A----o---o--o-o-o--o--o- master

Na git rebase master branch of git rebase master wanneer u hebt gecontroleerd of de branche, krijgt u:

 /---o-o-o-o---o--o------ feature----o--o-o-A----o---o--o-o-o--o--o- master \---o-o branch

Git rebase interactief in de console

Om git rebase in de console met een lijst met commits die je kunt kiezen, bewerken of daling in de rebase:

  • Voer git rebase -i HEAD~5 met het laatste nummer wordt een aantal commits van de meest recente naar achteren u wilt bekijken.,
  • in vim, druk op esc, dan i om de test te bewerken.
  • aan de linkerkant kunt u de pick overschrijven met een van de onderstaande commando ‘ s. Als je een commit naar een vorige wilt squashen en het commit bericht wilt weggooien, voer dan f in in plaats van de pick van de commit.
  • Sla uw teksteditor op en sluit deze af.
  • wanneer rebase wordt gestopt, maak dan de nodige aanpassingen, gebruik dan git rebase --continue totdat rebase succesvol is.,
  • als het rebased succesvol is, moet je de wijzigingen forceren met git push -f om de rebased versie toe te voegen aan je remote repository.
  • als er een merge conflict is, zijn er een aantal manieren om dit op te lossen, inclusief het volgen van de suggesties in deze gids. Een manier is om de bestanden te openen in een teksteditor en de delen van de code die u niet wilt verwijderen. Gebruik dan git add <file name> gevolgd door git rebase --continue., U kunt de conflicterende commit overslaan door git rebase --skip in te voeren, stop met rebasen door git rebase --abort in uw console uit te voeren.

Merge conflicten

een merge conflict is wanneer je commits maakt op afzonderlijke branches die dezelfde regel op conflicterende manieren veranderen.,welke versie van het bestand te bewaren in een foutbericht vergelijkbaar met het volgende:

CONFLICT (content): Merge conflict in resumé.txt Automatic merge failed; fix conflicts and then commit the result.

Als je de resumé.txt bestand in de code-editor, kan je zien waar het conflict plaats:

<<<<<<< HEADAddress: 808 South Street=======Address: 505 North Street>>>>>>> updated_address

Git-toegevoegd een aantal extra regels toe aan het bestand:

  • <<<<<<< HEAD
  • =======
  • >>>>>>> updated_address

Git Merge vs Git Rebase

Zowel git merge en git rebase zeer nuttige commando ‘ s, en één is niet beter dan de andere., Echter, er zijn een aantal zeer belangrijke verschillen tussen de twee commando ‘ s die u en uw team in aanmerking moeten nemen.

wanneer git merge wordt uitgevoerd, wordt een extra merge commit aangemaakt. Wanneer je in je lokale repository werkt, kan het hebben van te veel merge commits de commit historie verwarrend maken. Een manier om de merge commit te vermijden is door in plaats daarvan git rebase te gebruiken.

git rebase is een zeer krachtige functie. Dat gezegd hebbende, het is ook riskant als het niet op de juiste manier wordt gebruikt., git rebase verandert de commit historie, dus gebruik het voorzichtig. Als rebasen wordt gedaan in de remote repository, dan kan het veel problemen veroorzaken wanneer andere ontwikkelaars proberen om de laatste code wijzigingen uit de remote repository te halen. Vergeet niet alleen git rebase in een lokale repository uit te voeren.

dat is alles wat je moet weten om te mergen en te rebasen met de beste van hen.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *