25 votes

Git : Comment rebaser et écraser les commits d'une branche à la branche principale ?

Je suis en train d'essayer de rebaser et d'écraser tous mes commits de la branche actuelle vers la branche principale. Voici ce que j'essaie de faire :

git checkout -b nouvelle-fonction

je fais quelques commits, après quoi j'essayais :

git rebase -i master

dans ce cas, les commits resteront dans la branche nouvelle-fonction

git checkout master
git rebase -i nouvelle-fonction

Il m'affiche une fenêtre d'édition avec un message noop.

Je sais la commande :

git merge --squash nouvelle-fonction

Mais je suis actuellement en train d'apprendre la commande rebase.

56voto

Joe Points 388

Allons-y à travers les étapes.

1 - Nous créons une nouvelle branche de fonctionnalité

git checkout -b nouvelle-fonctionnalite

2 - Maintenant, vous pouvez ajouter/supprimer et mettre à jour ce que vous voulez sur votre nouvelle branche

git add 
git commit -am "Ajouté un nouveau fichier"
git rm 
git commit -am "Supprimé un fichier"
cat "ajouter plus de choses au fichier" >> 
git commit -am "Fichiers mis à jour"

3 - Ensuite, choisissez et fusionnez tous les commits en un seul joli message de commit

git rebase -i master

La chose clé à retenir ici est de changer le texte qui dit "pick" en "squash" pour tous les commits après le premier commit. Cela fusionnera tous les commits dans votre branche master.

4 - Sélectionnez la branche master

git checkout master

5 - Déplacez HEAD et la branche master là où se trouve nouvelle-fonctionnalite :

git rebase nouvelle-fonctionnalite

Vous pouvez essayer toutes les commandes dans cet outil visuel : http://pcottle.github.io/learnGitBranching/

7voto

knittl Points 64110

Lorsque vous effectuez un rebasage, Git ne déplacera pas les commits vers une autre branche. Il déplacera la branche incluant tous ses commits. Si vous souhaitez intégrer les commits dans master après avoir rebasé par dessus, utilisez git merge pour avancer rapidement la branche master vers ce commit.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X