Problemy z wprowadzeniem komunikatu o zatwierdzeniu Gita w Vimie


146

System operacyjny: Windows

piszę

$ git commit

następnie

„# Wprowadź treść komunikatu”

Piszę jakiś tekst, na przykład

„Dodano weryfikację formularza”

Naciśnij klawisz Enter i nie zatwierdzono. Następnie wciskam Shift + Enter, Ctrl + Enter, Alt + Enter - nadal nie zatwierdzono.

Myślę, że to głupie kłopoty, ale co mam zrobić?


Nie ma problemu. Ale twoje pytanie prawdopodobnie zyskałoby większą uwagę w Super User, które jest bardziej na temat tego typu pytań nieprogramistycznych: superuser.com/questions/tagged/git
bzlm

Odpowiedzi:


232

Jeśli jest to VIM dla Windows, możesz wykonać następujące czynności:

  • wpisz swoją wiadomość zgodnie z przedstawionymi wskazówkami
  • naciśnij, Escaby upewnić się, że nie jesteś w trybie wstawiania
  • następnie wpisz :wqEnterlub ZZ.

Zauważ, że w VIM często jest kilka sposobów na zrobienie jednej rzeczy. Tutaj jest jednak niewielka różnica. :wqEnterzawsze zapisuje aktualny plik przed zamknięciem, a ZZ, :xEnter, :xiEnter, :xitEnter, :exiEnteri :exitEntertylko napisać, jeśli dokument zostanie zmodyfikowany .
Wszystkie te synonimy mają po prostu różną liczbę naciśnięć klawiszy.



1
Kiedy wchodzę :wq, widzę następujący komunikat, ".git / COMMIT_EDITMSG" 54L, 2316C napisane Przerwanie zatwierdzenia z powodu pustego komunikatu zatwierdzenia.
kanna

Upewnij się, że dodałeś wiadomość. Po wyświetleniu monitu wpisz coś w rodzaju „moja wiadomość tutaj” (przejdziesz do trybu --wstaw - zakładam, że naciśnij klawisz esc, aby go opuścić). Gdy skończysz i wyjdziesz z trybu wstawiania, wpisz „ZZ” (duże ZZ)
Kpmurphy91

22
Dlaczego, kto to wymyślił? : wq Enter lub ZZ brzmi szalenie.
dezman

1
ipolecenie, aby rozpocząć wstawianie tekstu wiadomości było niezwykle pomocne. Dzięki @Matt Greer za to. Ta odpowiedź była dobra dla pozostałych kroków.
ps2goat

47

Zakładam, że używasz msys git. Jeśli tak, to edytor, który pojawia się, aby napisać wiadomość o zatwierdzeniu, to vim. Vim na początku nie jest przyjazny. Możesz wybrać inny edytor. Jeśli chcesz użyć innego edytora, spójrz na tę odpowiedź: Jak używać Notepad ++ (lub innego) z msysgit?

Jeśli chcesz używać vima, wpisz iswoją wiadomość. Gdy szczęśliwy uderzył ESC. Następnie wpisz :wq, a git będzie szczęśliwy.

Lub po prostu wpisz, git commit -m "your message here"aby całkowicie pominąć edytor.


16
Czy VIM jest kiedykolwiek przyjazny? A może ludzie po prostu przyzwyczajają się do jego nieprzyjazności?
Ryan Lundy

8
vim jest przyjazny, jeśli zrozumiesz, jak to działa. W rzeczywistości jest to bardzo logiczne i dobrze przemyślane.
Matt Greer,

Jeśli chcę używać znaków, które wymagają ucieczki (np. Apostrofów) w komunikacie o zmianach, zawsze używam edytora vim, ponieważ jest to o wiele mniej denerwujące. W przeciwnym razie prawie zawsze piszę komunikat o zatwierdzeniu jako część polecenia zatwierdzenia.
David DeMar,

To jest świetne, gdy musisz zmienić wiadomość o zatwierdzeniu
shinzou

15

Czy próbowałeś po prostu wykonać: git commit -m "Message here"

Więc w twoim przypadku:

git commit -m "Form validation added"

Oczywiście po dodaniu plików.


1
Twój wariant dobry. Ale chcę iść drogą tego, co napisałem (Google Translator)
aTei

Bez obaw, zapomniałem, że po tym poleceniu był redaktor. Rzadko kiedy robię git commit bez -m "Message"
Tony

1

Zazwyczaj git commitwywołuje interaktywny edytor (w Linuksie i prawdopodobnie Cygwin, określony przez zawartość $EDITORzmiennej środowiskowej), w którym możesz edytować swój komunikat zatwierdzenia. Kiedy zapiszesz i wyjdziesz, zatwierdzenie zostanie zakończone.

Powinieneś upewnić się, że zmiany, które próbujesz zatwierdzić, zostały dodane do indeksu Git; to określa, co jest popełnione. Szczegółowe informacje na ten temat można znaleźć pod adresem http://gitref.org/basic/ .


0

Możesz zmienić znak komentarza na inny niż # taki:

git config --global core.commentchar "@"
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.