web-dev-qa-db-fra.com

Git: Comment rebaser et écraser les commits de branche en master?

J'essaie de rebaser et d'écraser toutes mes validations de la branche actuelle au master. Voici ce que j'essaie de faire:

git checkout -b new-feature

faire quelques commits, après ça j'essayais:

git rebase -i master

dans ce cas, les validations resteront dans new-feature branche

git checkout master
git rebase -i new-feature

Il me donne et édite une fenêtre avec un message noop.

Je connais la commande:

git merge --squash new-feature

Mais je travaille actuellement sur l'apprentissage de la commande rebase.

24

Lors du rebasage, Git ne déplacera pas les commits vers une autre branche. Il déplacera la branche, y compris tous ses commits. Si vous voulez obtenir les validations dans master après avoir rebasé dessus, utilisez git merge <branch tip or commit of branch> pour avancer rapidement la branche principale vers ce commit.

6
knittl

Laisse aller à travers les étapes.

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

git checkout -b new-feature

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

git add <new-file>
git commit -am "Added new file"
git rm <file-name>
git commit -am "Removed a file"
cat "add more stuff to file" >> <new-file>
git commit -am "Updated files"

3 - Ensuite, choisissez et écrasez toutes les validations dans un joli joli message de validation

git rebase -i master

La chose clé dont vous devez vous souvenir ici est de changer le texte qui dit "choisir" en "écraser" pour toutes les validations après la première validation. Cela écrasera tous les commits vers votre branche principale.

4 - Sélectionnez la branche maître

git checkout master

5 - Déplacez le HEAD et la branche master où se trouve la nouvelle fonctionnalité:

git rebase new-feature

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

52
Joe