Câu trả lời:
Bạn có hai lựa chọn:
Cung cấp một thông điệp cam kết trống. Nếu đó là một cam kết mới và bạn chưa lưu tin nhắn, bạn chỉ cần sử dụng :q!
(thoát mà không lưu). Nếu bạn đã lưu (hoặc bạn đang sửa đổi một cam kết trước đó), chỉ cần xóa toàn bộ thông điệp tường trình và lưu lại. Điều này có thể được thực hiện với ggdG+ :wq
trong Vim.
Có trình soạn thảo thoát với mã thoát khác không. Trong Vim, bạn có thể sử dụng :cq
(thoát với mã lỗi).
Điều đáng chú ý là bạn luôn có thể đặt lại bản sao làm việc của mình về trạng thái trước khi cam kết git reset HEAD^
.
git reset HEAD^
yêu cầu thêm, vỏ của bạn có thể hiểu ^ là tiếp tục dòng. Hãy thử git reset "HEAD^"
, git reset HEAD^^
hoặc git reset HEAD~1
thay vào đó theo câu trả lời này: stackoverflow.com/questions/14203952/git-reset-
:q!
không hoạt động khi sửa đổi một cam kết. Nó không cập nhật thông điệp cam kết, nhưng nó thực hiện sửa đổi :-(:cq
hủy bỏ hoàn toàn việc sửa đổiTóm lại:
git commit
) bỏ sử dụng :q!
.git commit --amend
) xóa thông báo cam kết (chỉ một vài hàng đầu tiên không bắt đầu bằng #), ví dụ bằng cách giữ v và sử dụng các phím mũi tên để chọn nó và sau đó nhấn Xóa. Thoát khỏi :wq
để áp dụng thay đổi ! Nếu bạn sử dụng, :q!
các thay đổi sẽ bị mất và thông báo cam kết trước đó sẽ được sử dụng.Khi sử dụng VIM, cả hai trường hợp đều thoát được :cq
- VIM sẽ thoát với mã lỗi và cam kết sẽ bị hủy bỏ.
:q!
để thoát vim.