Warto dodać, że musisz nacisnąć Esc przed wejściem :q!do wyjścia z vima.
M_Merciless
Odpowiedzi:
331
Masz dwie opcje:
Podaj pusty komunikat zatwierdzenia. Jeśli jest to nowy zatwierdzenie, a wiadomość nie została jeszcze zapisana, możesz po prostu użyć :q!(wyjść bez zapisywania). Jeśli już zapisałeś (lub zmieniasz poprzednie zatwierdzenie), po prostu usuń cały komunikat dziennika i zapisz ponownie. Można to zrobić za pomocą ggdG+ :wqw Vimie.
Poproś edytora o wyjście z niezerowym kodem wyjścia. W Vimie możesz użyć :cq(wyjść z kodem błędu).
Warto zauważyć, że zawsze możesz zresetować kopię roboczą do stanu, w jakim była przed zatwierdzeniem git reset HEAD^.
: cq to biznes. Z jakiegoś powodu git działa bez względu na to, czy użyję: q!
Sirex,
2
git reset HEAD ^
odrzuciłby
2
: q! prawdopodobnie nie działa, ponieważ istnieje już zdefiniowana wiadomość, właśnie ją edytujesz.
Papipo
Czkawka: Jeśli git reset HEAD^poprosi o więcej, twoja powłoka może interpretować ^ jako kontynuację linii. Spróbuj git reset "HEAD^", git reset HEAD^^lub git reset HEAD~1zamiast tego na tę odpowiedź: stackoverflow.com/questions/14203952/git-reset-asks-more
Jake Stevens-Haas
75
:q!nie działa podczas zmiany zatwierdzenia. Nie aktualizuje komunikatu zatwierdzenia, ale wykonuje zmianę :-(
Chciałbym móc dodać kolejne +1. Byłem tu wiele razy, kiedy moja poprawka wybiera niewłaściwe zatwierdzenie.
Wyrmwood
8
Podsumowując:
Podczas tworzenia nowego zatwierdzenia (tj. git commit) Zakończ używając :q!.
Podczas zmiany (tj. git commit --amend) Usuń komunikat zatwierdzenia (tylko kilka pierwszych wierszy, które nie zaczynają się od #), na przykład przytrzymując v i używając klawiszy strzałek, aby je wybrać, a następnie naciskając klawisz Delete. Wyjdź z, :wqaby zastosować zmiany ! Jeśli użyjesz, :q!zmiany zostaną utracone i użyty zostanie poprzedni komunikat zatwierdzenia.
Podczas korzystania z VIM w obu przypadkach można wyjść z :cq- VIM zakończy działanie z kodem błędu i zatwierdzenie zostanie przerwane.
:q!
do wyjścia z vima.Odpowiedzi:
Masz dwie opcje:
Podaj pusty komunikat zatwierdzenia. Jeśli jest to nowy zatwierdzenie, a wiadomość nie została jeszcze zapisana, możesz po prostu użyć
:q!
(wyjść bez zapisywania). Jeśli już zapisałeś (lub zmieniasz poprzednie zatwierdzenie), po prostu usuń cały komunikat dziennika i zapisz ponownie. Można to zrobić za pomocą ggdG+:wq
w Vimie.Poproś edytora o wyjście z niezerowym kodem wyjścia. W Vimie możesz użyć
:cq
(wyjść z kodem błędu).Warto zauważyć, że zawsze możesz zresetować kopię roboczą do stanu, w jakim była przed zatwierdzeniem
git reset HEAD^
.źródło
git reset HEAD^
poprosi o więcej, twoja powłoka może interpretować ^ jako kontynuację linii. Spróbujgit reset "HEAD^"
,git reset HEAD^^
lubgit reset HEAD~1
zamiast tego na tę odpowiedź: stackoverflow.com/questions/14203952/git-reset-asks-more:q!
nie działa podczas zmiany zatwierdzenia. Nie aktualizuje komunikatu zatwierdzenia, ale wykonuje zmianę :-(:cq
całkowicie przerywa poprawkę.źródło
Podsumowując:
git commit
) Zakończ używając:q!
.git commit --amend
) Usuń komunikat zatwierdzenia (tylko kilka pierwszych wierszy, które nie zaczynają się od #), na przykład przytrzymując v i używając klawiszy strzałek, aby je wybrać, a następnie naciskając klawisz Delete. Wyjdź z,:wq
aby zastosować zmiany ! Jeśli użyjesz,:q!
zmiany zostaną utracone i użyty zostanie poprzedni komunikat zatwierdzenia.Podczas korzystania z VIM w obu przypadkach można wyjść z
:cq
- VIM zakończy działanie z kodem błędu i zatwierdzenie zostanie przerwane.źródło