Commandes Linux : git rebase

GIT REBASE

 

 

Fusionner une branche avec une autre avec rebasage :

Les commits de la branche branchname intégrée sont réécrits et translatés sur newbase. La fusion se fait en fast-forward.

$ git rebase newbase branchname

branchname aura comme nouvelle base newbase
ou, implicitement la branche rebasée et déplacée est la branche courante sur newbase :

$ git checkout branchname
$ git rebase newbase

ex :

$ git log --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %ad | %s%d [%C(bold blue)%an%Creset]' --graph --date=short --all
* c570971 - (master) 2018-06-18 | Added README (master) [darwinos]
| * 28917a4 - (HEAD -> greet) 2013-04-13 | Updated Rakefile (HEAD -> greet) [darwinos]
| * 4dac415 - 2013-04-13 | Hello uses Greeter [darwinos]
| * 39347b3 - 2013-04-13 | Added greeter class [darwinos]
|/  
* 96ee164 - 2013-04-13 | Added a Rakefile. [darwinos]
$ git checkout greet
Déjà sur 'greet'
$ git rebase master
Premièrement, rembobinons head pour rejouer votre travail par-dessus...
Application de  Added greeter class
Application de  Hello uses Greeter
Application de  Updated Rakefile
$ git log --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %ad | %s%d [%C(bold blue)%an%Creset]' --graph --date=short --all
* 4c6ba8c - (HEAD -> greet) 2013-04-13 | Updated Rakefile (HEAD -> greet) [darwinos]
* 7793b69 - 2013-04-13 | Hello uses Greeter [darwinos]
* 497a2b8 - 2013-04-13 | Added greeter class [darwinos]
* c570971 - (master) 2018-06-18 | Added README (master) [darwinos]
* 96ee164 - 2013-04-13 | Added a Rakefile. [darwinos]

 

Effectuer un rebasage interactif :

git rebase -i newbase

Attantion les commits sont inversés : de haut en bas, du plus ancien au plus récent.
Options interactives disponibles lors du rebasage :

    p, pick = picorer le commit
    r, reword = picorer le commit, mais reformuler son message
    e, edit = picorer le commit, mais s’arrêter pour le modifier
    s, squash = prendre le commit, mais le fusionner avec le précédent
    f, fixup = comme “squash”, mais en éliminant son message
    x, exec = lancer la commande (reste de la ligne) dans un shell
    d, drop = supprimer le commit

 

Effectuer un rebasage interactif pour réorganiser les n derniers commits :

git rebase -i HEAD~n

 

Fermer le menu
%d blogueurs aiment cette page :