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.


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)


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)


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.


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.


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


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


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.


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!


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 $.



0

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

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.