web-dev-qa-db-fra.com

Comment Squash 3 s'engage en 1?

Je suis assez nouveau sur git, j'ai donc essayé de comprendre comment écraser 3 commits en 1 afin que mon PR puisse être fusionné. J'ai lu beaucoup de documents et de guides et j'ai découvert comment écraser les commits, mais l'un de mes commits n'apparaît pas. J'ai essayé de joindre une photo de mes validations et une photo de mon terminal lorsque je tape: "git rebase -i HEAD ~ 5", mais malheureusement je suis un nouvel utilisateur donc je ne peux pas? Mais de toute façon, j'apprécierais grandement une aide.

9
Kaycee

Comment Squash 3 s'engage en 1?

  • faites le journal de git et voyez les commits que vous voulez écraser est commis firt.
  • si vous voulez que les 3 premiers engagements de squash de votre tête,

tilisez cette commande,

git rebase -i HEAD~3

Ici, le symbole tilde ~ avec 3 sélectionne les trois derniers commits les plus récents et il apparaîtra dans un shell interactif où vous pouvez sélectionner le premier commit et écraser les deux autres commits en un en entrant s, cela signifie squash.

Si votre commit n'apparaît pas alors faites git log et voyez, sinon alors

git add files
git commit -m 'your commit'
12
danglingpointer

Depuis le 1er avril 2016, il est désormais possible pour l'administrateur du référentiel d'effectuer Écrasement des demandes d'extraction . Cependant, si vous avez été invité à le faire vous-même, alors:

  1. Cette réponse SO la couvre
  2. Cet article d'Eli Bendersky couvre également cela
1
user4592495

Hey, GitHub a l'option Squash And Merge lors de la fusion d'un PR. Donc, vous n'avez rien à faire de votre côté, utilisez simplement l'option Squash and Merge lors de la fusion.

plus d'informations ici https://help.github.com/articles/about-pull-request-merges/#squash-and-merge-your-pull-request-commits

0
Ivan86

Écraser les commits signifie créer un nouveau commit au lieu de plusieurs. git reset au commit de base de votre branche et en créer un nouveau. Alors juste git Push -f à votre succursale.

0
Raz