Comment puis-je arrêter une validation Git lorsque le VI est à l'écran en attente d'un message de validation?


203

J'ai demandé à Git d'effectuer un commit à partir de git bash, il a fait apparaître VI comme il le fait toujours.

Je souhaite maintenant annuler la validation, comment puis-je empêcher de poursuivre la validation à partir de ce point?


Il convient d'ajouter que vous devez appuyer sur Esc avant d'entrer :q!pour quitter vim.
M_Merciless

Réponses:


332

Vous avez deux options:

  • Fournissez un message de validation vide. S'il s'agit d'un nouveau commit et que vous n'avez pas encore enregistré le message, vous pouvez simplement utiliser :q!(quitter sans enregistrer). Si vous avez déjà enregistré (ou que vous modifiez un commit précédent), supprimez simplement l'intégralité du message du journal et enregistrez à nouveau. Cela peut être fait avec ggdG+ :wqdans Vim.

  • Demandez à l'éditeur de quitter avec un code de sortie différent de zéro. Dans Vim, vous pouvez utiliser :cq(quitter avec un code d'erreur).

Il convient de noter que vous pouvez toujours réinitialiser votre copie de travail à l'état dans lequel elle se trouvait avant la validation git reset HEAD^.


96
: cq est l'entreprise. Pour une raison quelconque, git se débrouille, peu importe si j'utilise: q!
Sirex

2
git reset HEAD ^
annulerait

2
: q! ne fonctionne probablement pas car il y a déjà un message prédéfini, vous ne faites que le modifier.
Papipo

Hiccup: si vous en git reset HEAD^demandez plus, votre shell peut interpréter ^ comme une continuation de ligne. Essayez git reset "HEAD^", git reset HEAD^^ou à la git reset HEAD~1place selon cette réponse: stackoverflow.com/questions/14203952/git-reset-asks-more
Jake Stevens-Haas

76
  • :q!ne fonctionne pas lors de la modification d'un commit. Il ne met pas à jour le message de validation, mais il exécute l'amendement :-(
  • :cq annule complètement l'amendement.

1
J'aimerais pouvoir ajouter un autre +1. Je suis ici depuis des dizaines d'années lorsque mon amendement prend le mauvais engagement.
Wyrmwood

8

Pour résumer:

  • Lorsque vous créez un nouveau commit (c.- git commità-d :q!. ), Quittez l'utilisation .
  • Lors de la modification (c'est-à-dire git commit --amend), supprimez le message de validation (uniquement les premières lignes ne commençant pas par un #), par exemple en maintenant v et en utilisant les touches fléchées pour le sélectionner, puis en appuyant sur Supprimer. Quittez avec :wqpour appliquer les modifications ! Si vous utilisez, :q!les modifications seront perdues et le message de validation précédent sera utilisé.

Lorsque vous utilisez VIM, il est correct dans les deux cas de quitter avec :cq- VIM se fermera avec un code d'erreur et la validation sera abandonnée.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.