Git commit dans le terminal ouvre VIM, mais ne peut pas revenir au terminal

209

Essayer d'apprendre GitHub en ce moment et faire ce tutoriel Git essentials sur nettuts. Je suis sur la leçon de faire des commits.

L'enseignant tape git commitet il ouvre VIM en tant qu'éditeur (j'aimerais aussi savoir comment le faire s'ouvrir dans Sublime Text 2 à la place) de toute façon, il s'ouvre dans VIM et j'ajoute en 1 ligne disant que c'est mon premier commit et appuyez sur enregistrer .

Ensuite, il m'invite à enregistrer la sortie sur le bureau, quelque chose que je n'ai pas vu dans son screencast. Maintenant, je suis toujours dans VIM et je ne sais pas comment revenir au terminal "normal" :(

Je ne pouvais pas le comprendre, alors je viens de quitter le terminal et de le relancer, j'ai à nouveau validé la validation et j'ai reçu des messages d'avertissement concernant les doublons! Je ne sais pas si je dois de (E)edittoute façon ou (A)abort.

statut git

entrez la description de l'image ici

vigueur

entrez la description de l'image ici

un message lorsque je rouvre le terminal et git commit à nouveau

entrez la description de l'image ici

Leon Gaban
la source
3
Si vous voulez juste savoir comment enregistrer et quitter vim, c'est : wq
guido
1
même problème ici ... dès que j'essaie de valider, le terminal ouvre une sorte d'éditeur dont je ne peux pas sortir. Très ennuyant!
Kokodoko
3
@Kokodoko ouais je m'engage avec git commit -m 'my message'maintenant, c'est tout :) pas besoin d'un éditeur, jamais besoin d'utiliser 1, seulement 1 doublures nécessaires.
Leon Gaban
1
Les messages de validation courts @LeonGaban sont corrects pour le premier commit, mais à partir d'eux, vous devriez essayer d'adopter la technique d'avoir un sujet court et de détailler ensuite ce qui s'est réellement passé dans ce commit.
liamvictor du
1
@LeonGaban vous êtes incroyable
baydi

Réponses:

368

Pour enregistrer votre travail et quitter, appuyez sur Escpuis sur :wq(w pour écrire et q pour quitter).

Vous pouvez également enregistrer et quitter en appuyant sur Escpuis sur:x

Pour définir un autre éditeur exécuter export EDITOR=myFavoriteEdiorsur votre terminal, où myFavoriteEdiorpeut être vi, gedit, subl(pour sublime) , etc.

Gille
la source
7
+1 sur l'explication de la séquence de commandes et sur le processus montrant comment changer d'éditeur si nécessaire (mais sérieusement, pourquoi quelqu'un voudrait-il utiliser un éditeur autre que vim :)
Lieven Keersmaekers
15
NB Une simple :xsauvegarde et sortie de vim c'est un peu plus rapide que :wq;)
Xavier
1
Pour définir l'éditeur en permanence, vous pouvez utiliser: git config --global core.editor myFavoriteEditor
Machta
2
la touche esc ne fait rien pour moi. Qu'est-ce que ces commandes cryptiques, est-ce 2016 ou 1996? Incroyable ...
oyalhi
1
Ça ne marche pas du tout. Oui, j'ai entré un message de validation. Vim craint.
Dave Kielpinski
40

pas vraiment la réponse au problème VIM mais vous pouvez utiliser la ligne de commande pour entrer également le message de validation:

git commit -m "This is the first commit"
pkyeck
la source
19

Vous devez revenir en mode normal et enregistrer le message de validation avec

<Esc>:wq

ou

<Esc>:x

ou

<Esc>ZZ

La Esctouche vous fait passer du mode d' insertion au mode normal . La séquence :wq, :xou ZZécrit les modifications et quitte l'éditeur.

Lieven Keersmaekers
la source
2
Non ... la touche esc ne fait rien. Je suis bloqué dans "Merge branch master of ..." Veuillez saisir un message de validation pour expliquer pourquoi cette fusion est nécessaire.
Kokodoko
Avez- vous entré un message de validation? Que se passe-t-il lorsque vous appuyez sur <Esc>:wq?
Lieven Keersmaekers
2
Dans mon cas, rien ne se passe. Qu'est-ce que ces commandes cryptiques, est-ce 2016 ou 1996?
oyalhi
1
@ Homo-Erectus - J'ai commencé à utiliser vim il y a environ 4 ans et mon seul regret est que je n'ai pas commencé plus tôt. Je ne pense pas que ce soit du temps perdu, vous devriez l'essayer. Il a une courbe d'apprentissage abrupte, mais cela en vaudra la peine. Quant aux commandes, je n'ai pas grand-chose à ajouter. Tapez <esc>, tapez:, tapez x et ça devrait être ça.
Lieven Keersmaekers
@oyalhi Il n'est jamais tard pour commencer à utiliser vim
Anatoly Yakimchuk
16

Faire simplement la commande vim "save and quit" :wqdevrait faire l'affaire.

Pour que Git l'ouvre dans un autre éditeur, vous devez modifier le core.editorparamètre Git en une commande qui exécute l'éditeur souhaité.

git config --global core.editor "command to start sublime text 2"

Jani Hartikainen
la source
4
Merci pour le conseil sur la configuration de l'éditeur pour sublimer le texte. Je couriez en un seul problème cependant, je devais mettre un --waitdrapeau: git config --global core.editor "subl --wait". Cela empêcheAborting commit due to empty commit message.
Eric
16

C'est en réponse à votre question ...

J'aimerais aussi savoir comment le faire s'ouvrir dans Sublime Text 2 à la place

Pour les fenêtres:

git config --global core.editor "'C:/Program Files/Sublime Text 2/sublime_text.exe'"

Vérifiez que le chemin d'accès sublime_text.exeest correct et ajustez-le si nécessaire.

Pour Mac / Linux:

git config --global core.editor "subl -n -w"

Si vous obtenez un message d'erreur tel que:

erreur: il y a eu un problème avec l'éditeur 'subl -n -w'.

Créez l'alias pour subl

sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl

Vérifiez à nouveau que le chemin correspond à votre machine.

Pour Sublime Text, enregistrez cmd Set fermez simplement la fenêtre cmd Wpour revenir à git.

mhatch
la source