Git - Comment fermer l'éditeur de commit?

209

Je suis nouveau dans git et j'apprends à partir d'un PDF. Je viens d'exécuter une commande $ git commitet cela ouvre un nouvel éditeur. Mais j'essaie de fermer ce nouvel éditeur de commit. Comment faire ça? J'utilise git sur windows.

aniskhan001
la source
pas une réponse complète, mais une façon d'éviter l'éditeur est d'utiliser l'option "-m". Par exemple, après $ git, ajoutez <vos_changements>, puis faites $ git commit -m "mes modifications; j'évite l'éditeur!"
Quetzalcoatl

Réponses:

242

Enregistrez le fichier dans l'éditeur. Si c'est Emacs: CTRLX CTRLSpour sauvegarder puis CTRLX CTRLCpour quitter ou si c'est vi::wq

Appuyez d' escabord sur pour sortir de l'édition. (sous windows / vi)

tpg2114
la source
3
L'utilisateur doit fermer l'éditeur en plus d'enregistrer le fichier, donc pour Emacs, c'est en fait Ctrl-X Ctrl-C.
user4815162342
1
Mis à jour ... Je le savais, mais comme la plupart des commandes emacs, elles sont tellement ancrées en moi que j'oublie ce qu'elles sont ... Je les fais juste.
tpg2114
Si vous utilisez emacsclient, vous pouvez le fermer avecC-x #
azzamsa
1
merci, sur windows bash, il n'est pas clair que vous devez 1: quitter et 2: enregistrer les modifications
Juan Monsalve
Ce mode d'insertion est-il quelque chose que je peux désactiver sur ma machine Windows?
Rez.Net
201

A également eu des ennuis. Sous Linux, j'ai utilisé Ctrl+ X(et Ypour confirmer), puis j'étais de retour sur le shell prêt à tirer / pousser.

Sur Windows GIT Bash Ctrl + Xne ferait rien et a découvert que cela fonctionne tout à fait comme vi / vim. Appuyez ipour entrer en mode d'insertion en ligne. Tapez la description tout en haut, appuyez sur escpour quitter le mode d'insertion, puis tapez :x!(maintenant le curseur est en bas) et appuyez sur enterpour enregistrer et quitter.

Si vous tapez :q! place, quittera l'éditeur sans enregistrer (et la validation sera abandonnée)

Marc Compte
la source
18
c'est la réponse pour moi pour windows
lode
1
esc: x! - Ce n'est pas seulement impossible à découvrir, c'est comme si quelqu'un jouait à cache-cache avec des fonctionnalités.
Tristan
45

Après avoir écrit le message de validation, appuyez simplement sur le bouton Echap , puis écrivez : wq ou : wq! puis sur Entrée pour fermer le fichier Unix.

chandan gupta
la source
6
cette solution est celle qui fonctionne sur Git Gui bash pour la fenêtre
ocrampico
! Cela m'a rappelé l'époque de l'Université, lorsque nous avons fait des modifications sous Unix vi, après avoir longtemps écrit quelques :wqcommandes
Irf
:xest un raccourci pour :wqdans Vim.
rnevius
19

Mieux encore, configurez l'éditeur sur quelque chose avec lequel vous êtes à l'aise (gedit par exemple):

git config --global core.editor "gedit"

Vous pouvez lire la configuration actuelle comme ceci:

git config core.editor

Vous pouvez également ajouter le message de validation à partir de la ligne de commande.

git commit -m "blablabla"

et l'éditeur ne sera pas ouvert en premier lieu.

Martin G
la source
8

Après la git commitcommande, vous êtes entré dans l'éditeur, appuyez d'abord sur ipuis commencez à taper. Après avoir commis votre message a frappé Ctrl + calors:wq

Mohammad Hashemi
la source
4

Alternatives à Nano (pourraient vous faciliter la vie):

Sous Windows, utilisez le bloc-notes. Dans l'invite de commande, tapez:

git config core.editor notepad

Sur Ubuntu / Linux, utilisez l'éditeur de texte (gedit). Dans le type de fenêtre de terminal:

git config core.editor gedit

ggootz
la source
1

Comme alternative à «enregistrer et quitter», vous pouvez utiliser la fonction de git-commit git-commit-commit, par défaut liée à C-c C-c. Il enregistrera le fichier et le fermera. Ensuite, vous devez toujours fermer emacs avec C-x C-c, comme mentionné précédemment. J'essaie actuellement de savoir comment faire pour qu'emacs se ferme automatiquement.

Martin
la source
1

J'ai eu ce problème, j'ai reçu une invite de type ">" et je n'ai pas pu valider. Je remplace le "dans le commentaire par" et ça marche.

J'espère que cela aide quelqu'un!

Mariano Cali
la source
Ah! J'étais resté coincé avec cette invite ">" aussi. En lisant votre commentaire, j'ai compris que puisque j'avais utilisé une apostrophe dans une contraction dans mon commentaire, le terminal m'attendait pour clore le devis! Enfin je suis libre!
Kevin Scharnhorst
0

Je ne suis pas sûr de la combinaison de touches qui vous y amène à l'invite> mais ce n'est pas une invite bash que je connais. Je l'obtiens habituellement par accident. Ctrl + C (ou D) me ramène à l'invite $.

dubfactor
la source
0

Notez que si vous utilisez Sublime comme éditeur de commit, vous avez besoin des -n -wdrapeaux , sinon git continue de penser que votre message de commit est vide et abandonné.

Siddhartha
la source
0

Sous Mac 1.Appuyez sur Maj + Z Maj + Z (Z majuscule deux fois).

A_Mo
la source