Le guide ultime pour git Merge et git Rebase

Bienvenue dans notre guide ultime pour les commandes git merge Et git rebase. Ce tutoriel vous apprendra tout ce que vous devez savoir sur la combinaison de plusieurs branches avec Git.

git Merge

la commandegit merge fusionnera toutes les modifications apportées à la base de code sur une branche distincte à votre branche actuelle en tant que nouveau commit.,

la syntaxe de la commande est la suivante:

git merge BRANCH-NAME

par exemple, si vous travaillez actuellement dans une branche nommée dev et souhaitez fusionner toutes les nouvelles modifications apportées dans une branche nommée new-features, vous devez lancer la commande suivante:

git merge new-features

remarque: s’il y a des modifications non validées sur votre branche actuelle, Git ne vous permettra pas de fusionner tant que toutes les modifications de votre branche actuelle n’auront pas été validées., Pour gérer ces changements, vous pouvez soit:

Créer une nouvelle branche et valider les modifications

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

les Ranger

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

Abandonner toutes les modifications

git reset --hard # removes all pending changes

Git Rebase

La relocalisation d’une branche Git est un moyen de déplacer la totalité d’une branche à l’autre point de l’arbre. L’exemple le plus simple consiste à déplacer une branche plus haut dans l’arbre., Disons que nous avons une branche qui s’écartent de la branche master au point Un:

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

Lorsque vous rebase vous pouvez le déplacer comme ceci:

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

Pour cela, assurez-vous d’avoir tous les commits que vous voulez dans le rebase dans votre branche master. Vérifiez la branche que vous souhaitez rebaser et tapez git rebase master (où master est la branche sur laquelle vous souhaitez rebaser)., que par exemple une branche qui était basée sur une autre branche (appelons-la fonctionnalité) est rebasée sur master:

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

Après git rebase master branch ou git rebase master lorsque vous avez extrait la branche, vous obtiendrez:

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

git rebase interactive dans la console

pour utiliser git rebase dans la console avec une liste de commits, vous pouvez choisir, modifier ou déposer le rebase:

  • entrez git rebase -i HEAD~5 avec le dernier nombre étant un nombre quelconque de commits plus récent en arrière que vous souhaitez examiner.,
  • Dans vim, appuyez sur la touche esc, puis i pour commencer le montage de l’essai.
  • Sur le côté gauche, vous pouvez remplacer la balise pick avec l’une des commandes ci-dessous. Si vous voulez écraser un commit dans un précédent et ignorer le message de commit, entrez f à la place du pick du commit.
  • Enregistrez et quittez votre éditeur de texte.
  • lorsque rebase est arrêté, effectuez les ajustements nécessaires, puis utilisezgit rebase --continue jusqu’à ce que rebase réussisse.,
  • s’il rebase avec succès, vous devez forcer la poussée de vos modifications avecgit push -f pour ajouter la version rebasée à votre référentiel distant.
  • S’il y a un conflit de fusion, il existe un certain nombre de façons de résoudre ce problème, y compris en suivant les suggestions de ce guide. Une façon est d’ouvrir les fichiers dans un éditeur de texte et de supprimer les parties du code que vous ne souhaitez pas. Ensuite, utilisez git add <file name> suivi de git rebase --continue., Vous pouvez ignorer le commit en conflit en entrant git rebase --skip, arrêter le rebasage en exécutant git rebase --abort dans votre console.

conflits de fusion

Un conflit de fusion est lorsque vous effectuez des validations sur des branches distinctes qui modifient la même ligne de manière conflictuelle.,quelle version du fichier conserver dans un message d’erreur similaire à ce qui suit:

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

Si vous regardez le fichier resumé.txt dans votre éditeur de code, vous pouvez voir où le conflit a eu lieu:

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

Git a ajouté si vous avez besoin d’une interface utilisateur, vous pouvez utiliser cette interface pour créer une interface utilisateur, puis utiliser une interface utilisateur pour créer une interface utilisateur. »691e596697″> Et git rebasesont des commandes très utiles, et l’une n’est pas meilleure que l’autre., Cependant, il existe des différences très importantes entre les deux commandes que vous et votre équipe devriez prendre en considération.

chaque fois quegit merge est exécuté, un commit de fusion supplémentaire est créé. Chaque fois que vous travaillez dans votre référentiel local, un trop grand nombre de commits de fusion peut rendre l’historique des commits confus. Une façon d’éviter le commit de fusion consiste à utiliser git rebase à la place.

git rebase est une fonctionnalité très puissante. Cela étant dit, c’est risqué aussi s’il n’est pas utilisé de la bonne manière., git rebase modifie l’historique des commits, alors utilisez-le avec précaution. Si le rebasage est effectué dans le référentiel distant, il peut créer de nombreux problèmes lorsque d’autres développeurs tentent d’extraire les dernières modifications de code du référentiel distant. N’oubliez pas d’exécuter uniquement git rebase dans un référentiel local.

C’est tout ce que vous devez savoir pour fusionner et rebaser avec le meilleur d’entre eux.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *