150 votes

Problèmes de saisie du message de commit Git avec Vim

Système d'exploitation : Windows

J'écris

$ git commit

puis

"# Please enter the commit message"

J'écris un texte, comme

"Validation du formulaire ajoutée"

Appuyer sur Entrée et ne pas s'engager. Puis j'ai appuyé sur Shift+Enter, Ctrl+Enter, Alt+Enter - toujours pas de validation.

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

0 votes

Pas de problème. Mais votre question recevrait probablement une meilleure attention sur le site Super User, qui est plus approprié pour ce type de questions non liées à la programmation : superuser.com/questions/tagged/git

243voto

mousio Points 4039

S'il s'agit de VIM pour Windows, vous pouvez procéder comme suit :

  • saisissez votre message en suivant les directives présentées
  • presse Esc pour s'assurer que vous n'êtes pas en mode insertion.
  • puis tapez :wqEnter o ZZ .

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

0 votes

1 votes

Quand j'entre :wq Je vois le message suivant, ".git/COMMIT_EDITMSG" 54L, 2316C written Aborting commit due to empty commit message.

1 votes

Assurez-vous que vous avez ajouté un message. Lorsque vous y êtes invité, tapez quelque chose comme "mon message ici" (vous passerez en mode insertion, je suppose, appuyez sur esc pour le quitter). Une fois que vous avez terminé et que vous avez quitté le mode insertion, tapez 'ZZ' (ZZ majuscule).

47voto

Matt Greer Points 29401

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

Si vous voulez utiliser vim, tapez i pour taper votre message. Lorsque vous êtes satisfait, appuyez sur ESC. Puis tapez :wq et git sera alors heureux.

Ou bien tapez simplement git commit -m "your message here" pour ne pas utiliser l'éditeur.

17 votes

Est-ce que vim jamais amical ? Ou bien les gens s'habituent-ils à son manque de convivialité ?

8 votes

Vim est convivial une fois que vous avez compris comment il fonctionne. Il est en fait très logique et bien pensé.

0 votes

Si je veux utiliser des caractères qui nécessitent un échappement (par exemple des apostrophes) dans le message de livraison, j'utilise toujours l'éditeur vim parce que c'est beaucoup moins ennuyeux. Sinon, je me contente presque toujours d'écrire le message de validation dans le cadre de la commande de validation.

17voto

Tony Points 743

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

Donc dans votre cas :

git commit -m "Form validation added"

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

1 votes

Votre variante est bonne. Mais je veux aller dans le sens de ce que j'ai écrit (google Translator)

0 votes

Pas d'inquiétude, j'ai oublié qu'il y avait un éditeur après cette commande. Je fais rarement juste un git commit sans un -m "Message".

1voto

Emil Sit Points 11326

Typiquement, git commit fait apparaître un éditeur interactif (sous Linux, et éventuellement Cygwin, déterminé par le contenu de votre fichier $EDITOR (variable d'environnement) dans laquelle vous pouvez éditer votre message de validation. Lorsque vous enregistrez et quittez, la livraison est terminée.

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

0voto

Matt Spradley Points 2100

Vous pouvez changer le caractère du commentaire en quelque chose d'autre que # comme ceci :

git config --global core.commentchar "@"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X