Problèmes lors de la saisie du message de validation Git avec Vim

146

OS: Windows

j'écris

$ git commit

puis

"# Veuillez saisir le message de validation"

J'écris du texte, comme

"Validation du formulaire ajoutée"

Appuyez sur Entrée et non validé. Ensuite, j'appuie sur Maj + Entrée, Ctrl + Entrée, Alt + Entrée - toujours pas engagé.

Je pense que c'est stupide problème, mais que dois-je faire?

aTei
la source
Aucun problème. Mais votre question attirerait probablement une meilleure attention sur Super User, qui est plus sur le sujet pour ce type de question non
liée à la

Réponses:

232

S'il s'agit de VIM pour Windows, vous pouvez effectuer les opérations suivantes:

  • entrez votre message en suivant les directives présentées
  • appuyez Escpour vous assurer que vous êtes hors du mode insertion
  • puis tapez :wqEnterou ZZ.

Notez que dans VIM, il existe souvent plusieurs façons de faire une chose. Ici, il y a cependant une légère différence. :wqEnterécrit toujours le fichier en cours avant de le fermer, alors que ZZ, :xEnter, :xiEnter, :xitEnter, :exiEnteret :exitEnterécrire que si le document est modifié .
Tous ces synonymes ont juste un nombre différent de pressions sur les touches.

mousio
la source
1
Quand j'entre, :wqje vois le message suivant, ".git / COMMIT_EDITMSG" 54L, 2316C écrit Abandon de la validation en raison d'un message de validation vide.
kanna
Assurez-vous d'avoir ajouté un message. Lorsque vous y êtes invité, tapez quelque chose comme "mon message ici" (vous passerez en mode --insertion - je suppose, appuyez sur échap pour le quitter). Une fois que vous avez terminé, et hors du mode insertion, tapez `` ZZ '' (ZZ majuscule)
Kpmurphy91
22
Pourquoi, qui a inventé ça? : wq Enter ou ZZ semble insensé.
dezman
1
la icommande pour commencer à insérer le texte du message était extrêmement utile. Merci à @Matt Greer pour celui-là. Cette réponse était bonne pour le reste des étapes.
ps2goat
47

Je suppose que vous utilisez msys git. Si c'est le cas, l'éditeur qui apparaît pour écrire votre message de validation est vim. Vim n'est pas amical au début. Vous préférerez peut-être passer à un autre éditeur. Si vous souhaitez utiliser un autre éditeur, regardez cette réponse: Comment utiliser Notepad ++ (ou autre) avec msysgit?

Si vous souhaitez utiliser vim, saisissez ipour saisir votre message. Quand heureux frappé ESC. Puis tapez :wq, et git sera alors heureux.

Ou tapez simplement git commit -m "your message here"pour ignorer complètement l'éditeur.

Matt Greer
la source
16
Vim est-il toujours convivial? Ou les gens s'habituent-ils simplement à son hostilité?
Ryan Lundy
8
vim est convivial une fois que vous comprenez comment cela fonctionne. C'est en fait très logique et bien pensé.
Matt Greer
Si je veux utiliser des caractères qui nécessitent des échappements (par exemple des apostrophes) dans le message de validation, j'utilise toujours l'éditeur vim car c'est beaucoup moins ennuyeux. Sinon, j'écris presque toujours le message de validation dans le cadre de la commande de validation.
David DeMar
C'est génial lorsque vous devez modifier un message de validation
shinzou
15

Avez-vous essayé d'aller: git commit -m "Message here"

Donc dans votre cas:

git commit -m "Form validation added"

Après avoir ajouté vos fichiers bien sûr.

Tony
la source
1
Votre variante est bonne. Mais je veux suivre la voie de ce que j'ai écrit (Google Translator)
aTei
Pas de soucis, j'ai oublié qu'il y avait un éditeur après cette commande. Je fais rarement git commit sans un -m "Message"
Tony
1

En général, git commitaffiche un éditeur interactif (sous Linux, et éventuellement Cygwin, déterminé par le contenu de votre $EDITORvariable d'environnement) dans lequel vous pouvez éditer votre message de validation. Lorsque vous enregistrez et quittez, la validation se termine.

Vous devez vous assurer que les modifications que vous essayez de valider ont été ajoutées à l'index Git; cela détermine ce qui est engagé. Voir http://gitref.org/basic/ pour plus de détails à ce sujet.

Emil Sit
la source
0

Vous pouvez changer le caractère de commentaire en quelque chose en plus # comme ceci:

git config --global core.commentchar "@"
Matt Spradley
la source