Git - Jak zamknąć edytor zatwierdzeń?

209

Jestem nowy w git i uczeniu się z pliku PDF. Właśnie wykonałem polecenie $ git commiti otwiera nowy edytor. Ale próbuję zamknąć ten nowy edytor zatwierdzeń. Jak to zrobić? Używam git na Windowsie.

aniskhan001
źródło
nie jest to kompletna odpowiedź, ale jednym ze sposobów uniknięcia edytora jest użycie opcji „-m”. Np. Po $ git dodaj <your_changes>, a następnie wykonaj $ git commit -m „moje zmiany; Unikam edytora!”
Quetzalcoatl

Odpowiedzi:

242

Zapisz plik w edytorze. Jeśli to Emacs: CTRLX CTRLSaby zapisać, to CTRLX CTRLCwyjdź lub jeśli to vi::wq

Naciśnij escpierwszy, aby wyjść z edycji. (w Windows / vi)

tpg2114
źródło
3
Użytkownik musi zamknąć edytor oprócz zapisywania pliku, więc w Emacsie jest to w rzeczywistości Ctrl-X Ctrl-C.
user4815162342
1
Zaktualizowano ... Wiedziałem o tym, ale podobnie jak większość poleceń Emacsa, są one tak głęboko we mnie zakorzenione, że zapominam, czym są ... Po prostu je wykonuję.
tpg2114,
Jeśli używasz emacsclient, możesz go zamknąć za pomocąC-x #
azzamsa,
1
dzięki, w Windows Bash nie jest jasne, że musisz 1: wyjść i 2: zapisać zmiany
Juan Monsalve
Czy ten tryb wstawiania można wyłączyć na komputerze z systemem Windows?
Rez.Net
199

Miał też kłopoty. W Linuksie użyłem Ctrl+ X(i Ydo potwierdzenia), a potem wróciłem do powłoki gotowy do ściągnięcia / wypchnięcia.

W systemie Windows GIT Bash Ctrl + Xnie zrobiłby nic i odkrył, że działa zupełnie jak vi / vim. Naciśnij, iaby przejść do trybu wstawiania. Wpisz opis na samej górze, naciśnij, escaby wyjść z trybu wstawiania, a następnie wpisz :x!(teraz kursor znajduje się na dole) i naciśnij, enteraby zapisać i wyjść.

Jeśli :q!zamiast tego napiszesz , zamkniesz edytor bez zapisywania (i zatwierdzenie zostanie przerwane)

Marc Compte
źródło
18
to jest dla mnie odpowiedź na Windows
Lode
1
esc: x! - Nie jest to po prostu nie do odkrycia, jakby ktoś grał w chowanego z funkcjonalnością.
Tristan
45

Po napisaniu wiadomości zatwierdzenia, naciśnij klawisz Esc, a następnie napisz : wq lub : wq! a następnie Enter, aby zamknąć plik unix.

Chandan Gupta
źródło
6
to rozwiązanie działa na Git Gui
Bash
! To przypomniało mi czasy uniwersyteckie, kiedy robiliśmy kilka edycji Unixa VI, po długim napisaniu kilku :wqpoleceń
Irf
:xjest skrótem do :wqVima.
rnevius
19

Jeszcze lepiej, skonfiguruj edytor tak, abyś czuł się swobodnie (na przykład gedit):

git config --global core.editor "gedit"

Możesz odczytać bieżącą konfigurację w następujący sposób:

git config core.editor

Możesz także dodać komunikat zatwierdzenia z wiersza poleceń.

git commit -m "blablabla"

a edytor nie zostanie w ogóle otwarty.

Martin G.
źródło
7

Po git commitpoleceniu wszedłeś do edytora, więc najpierw naciśnij, ia potem zacznij pisać. Po popełnieniu wiadomość hit Ctrl + cnastępnie:wq

Mohammad Hashemi
źródło
4

Alternatywy dla Nano (mogą ułatwić Ci życie):

W systemie Windows użyj notatnika. W wierszu polecenia wpisz:

git config core.editor notepad

W systemie Ubuntu / Linux użyj edytora tekstu (gedit). W typie okna terminala:

git config core.editor gedit

ggootz
źródło
1

Jako alternatywę dla opcji „zapisz i wyjdź” możesz użyć funkcji git-commit git-commit-commit, domyślnie powiązanej z C-c C-c. Zapisze plik i zamknie go. Potem, C-x C-cjak już wspomniano , nadal musisz zamknąć emacsa . Obecnie próbuję dowiedzieć się, jak emacs automatycznie wychodził z programu.

Jaskółka oknówka
źródło
1

Miałem ten problem, otrzymałem monit typu „>” i nie mogłem go zatwierdzić. Zamieniam „w komentarzu na” i to działa.

Mam nadzieję, że to komuś pomoże!

Mariano Cali
źródło
Aha! Utknąłem również z tym pytaniem „>”. Po przeczytaniu twojego komentarza zorientowałem się, że skoro użyłem apostrofu w skurczu w moim komentarzu, terminal czekał, aż skończę cytat! Nareszcie jestem wolny!
Kevin Scharnhorst
0

Nie jestem pewien, czy kombinacja klawiszy prowadzi do znaku zachęty>, ale nie jest to komunikat zachęty, który znam. Zwykle dostaję to przez przypadek. Ctrl + C (lub D) powoduje powrót do monitu $.

dubfactor
źródło
0

Zauważ, że jeśli używasz Sublime jako edytora zatwierdzeń, potrzebujesz -n -wflag , w przeciwnym razie git nadal myśli, że twój komunikat zatwierdzenia jest pusty i przerywa.

Siddhartha
źródło
0

W Mac 1. Naciśnij Shift + Z Shift + Z (dwa razy duże Z).

A_Mo
źródło