web-dev-qa-db-fra.com

Extensions Git: Squash s'engage?

Pour écraser plusieurs commits, j'ai toujours utilisé:

git reset --soft HEAD~<number of commits to squash> && git commit

Mais je me demande s'il existe un bon moyen de le faire dans un bon client git comme les extensions git? Ce serait cool si vous pouviez simplement sélectionner des validations consécutives et les écraser.

18
Slaknation

Vous pouvez facilement le faire dans GE:

  1. réinitialisation mixte du commit que vous souhaitez écraser
  2. mettre en scène et valider les fichiers dont vous avez besoin
  3. terminé

Comment écraser: enter image description here

32
RussKie

Here is the slowed down version of the accepted answer:

Voici la version ralentie de la réponse acceptée

12
user1682406

Vous pouvez y parvenir facilement avec GitExtensions de 2 manières.

Le premier est de faire exactement la même chose mais à partir de l'interface graphique qui convient lorsque vous ne voulez pas utiliser les messages de commit existants des commits que vous regardez pour écraser. .

 git reset --soft HEAD~<number of commits to squash>

Dans le navigateur d'historique de GitExtensions, cliquez avec le bouton droit sur le dernier commit que vous souhaitez conserver et sélectionnez 'reset branch to here'. Sélectionnez ensuite l'option 'soft'.

 git commit

Validez ensuite les modifications encore en cours.

Le second est un 'rebase --interactif':

Faites un clic droit sur le même commit décrit ci-dessus et sélectionnez 'rebase on'. Dans la fenêtre contextuelle, cochez la case "interactif".

Ensuite, dans l'éditeur, définissez l'action de validation sur 'squash'. Lisez une bonne documentation sur le rebase interactif avant de le faire. Cette solution est parfaite lorsque vous voulez écrire un bon message de validation construit à partir des messages de validation des validations que vous écrasez.

7
Philippe

(En supposant que vous utilisez Windows)

Oui, je crois que TortoiseGit peut le faire. En tant qu'utilisateur précédent de TortoiseSVN, je le recommanderais. Lors de l'affichage du journal de validation, vous pouvez effectuer les opérations suivantes:

Combine multiple commits context menu

En outre, lorsque vous vous engagez à l'aide de TortoiseGit, vous aurez la possibilité de simplement modifier votre commit précédent, afin que vous puissiez le faire au fur et à mesure. Il affichera également le dernier message de validation lorsque vous effectuez cette opération (j'ai effacé le mien pour des raisons de confidentialité dans la capture d'écran).

Amend last commit

Bien sûr, je suis sûr que vous le savez déjà, mais n'essayez pas de combiner ou de modifier les validations déjà poussées vers la télécommande, ou votre prochaine Push échouera lamentablement.

En prime, vous bénéficierez des avantages des icônes de superposition lorsque vous parcourez votre copie de travail dans l'Explorateur.

Explorer icons

4
BoffinbraiN