Rebaser une branche
Une autre approche pour intégrer la branche issue3
dans la branche principale consiste à recourir à la commande git rebase. Le rebasage nous permet de nettoyer l'arborescence de notre historique, comme nous l'avons vu plus haut dans ce guide.
Commençons par annuler la fusion précédente.
$ git reset --hard HEAD~
Notre historique se présente à présent comme suit :
Basculez ensuite vers la branche issue3
et effectuez un rebasage sur la branche principale.
$ git checkout issue3
Switched to branch 'issue3'
$ git rebase main
Auto-merging sample.txt
CONFLICT (content): Merge conflict in sample.txt
error: could not apply 470d684... My Commit
hint: Resolve all conflicts manually, mark them as resolved with
hint: "git add/rm <conflicted_files>", then run "git rebase --continue".
hint: You can instead skip this commit: run "git rebase --skip".
hint: To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply 470d684... My Commit
Lorsque le conflit survient lors du rebasage, vous devez le résoudre pour reprendre l'opération.
Anyone can learn Git with this tutorial and Backlog
add: Register a change in an index
<<<<<<< HEAD
commit: Save the status of an index
=======
pull: Obtain the content of a remote repository
>>>>>>> issue3
Après la résolution du conflit, vous pouvez reprendre le rebasage avec l'option --continue
.
Avant d'appliquer vos modifications, Git ouvre votre éditeur de texte par défaut (Vim ou Emacs sur la plupart des systèmes Unix) pour vous donner la possibilité de modifier le message de rebasage. Si vous souhaitez quitter et annuler l'opération de rebasage, vous pouvez le faire avec l'option --abort
.
$ git add myfile.txt
$ git rebase --continue
Applying: append description of the pull command
Notre historique se présente maintenant comme suit:
La branche issue3
ayant été rebasée sur la branche main
, nous pouvons à présent lancer une fusion à avance rapide.
Basculez vers la branche principale et fusionnez issue3
avec main
$ git checkout main
Switched to branch 'main'
$ git merge issue3
Updating 8f7aa27..96a0ff0
Fast-forward
myfile.txt | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
Le contenu du fichier myfile.txt
est désormais identique à celui de la fusion précédente. Et l'historique se présente désormais comme suit