Git - Làm thế nào để đóng trình soạn thảo cam kết?


209

Tôi mới sử dụng git và học từ PDF. Tôi vừa thực hiện một lệnh $ git commitvà nó sẽ mở một trình soạn thảo mới. Nhưng tôi đang cố gắng để đóng trình soạn thảo cam kết mới đó. làm như thế nào? Tôi đang sử dụng git trên windows.


không phải là một câu trả lời hoàn chỉnh, nhưng một cách để tránh trình soạn thảo là sử dụng tùy chọn "-m". Ví dụ: sau $ git thêm <your_changes>, sau đó thực hiện $ git commit -m "các thay đổi của tôi; Tôi đang tránh trình chỉnh sửa!"
Quetzalcoatl

Câu trả lời:


242

Lưu tệp trong trình chỉnh sửa. Nếu đó là Emacs: CTRLX CTRLSđể lưu thì CTRLX CTRLChãy thoát hoặc nếu đó là vi::wq

Nhấn escđầu tiên để thoát khỏi chỉnh sửa. (trong cửa sổ / vi)


3
Người dùng cần đóng trình chỉnh sửa ngoài việc lưu tệp, vì vậy đối với Emacs thực sự là vậy Ctrl-X Ctrl-C.
dùng4815162342

1
Đã cập nhật ... Tôi biết điều đó, nhưng giống như hầu hết các lệnh emacs, chúng ăn sâu vào tôi đến nỗi tôi quên mất chúng là gì ... Tôi chỉ làm chúng.
tpg2114

Nếu bạn sử dụng emacsclient, bạn có thể đóng nó bằngC-x #
azzamsa

1
cảm ơn, trên windows bash không rõ là bạn phải 1: thoát và 2: lưu các thay đổi
Juan Monsalve

Đây có phải là chế độ chèn mà tôi có thể vô hiệu hóa trên máy tính windows của mình không?
Rez.Net

199

Có rắc rối là tốt. Trên Linux, tôi đã sử dụng Ctrl+ X(và Yđể xác nhận) và sau đó tôi đã quay lại shell sẵn sàng để kéo / đẩy.

Trên Windows GIT Bash Ctrl + Xsẽ không làm gì cả và phát hiện ra nó hoạt động khá giống vi / vim. Nhấn iđể vào chế độ chèn nội tuyến. Nhập mô tả ở trên cùng, nhấn escđể thoát chế độ chèn, sau đó nhập :x!(bây giờ con trỏ ở dưới cùng) và nhấn enterđể lưu và thoát.

Nếu gõ :q!thay vào đó, sẽ thoát trình chỉnh sửa mà không lưu (và cam kết sẽ bị hủy bỏ)


18
đây là câu trả lời cho tôi dành cho windows
lode

1
thoát: x! - Điều này không thể phát hiện được như thể ai đó đang chơi trốn tìm với chức năng.
Tristan

45

Sau khi viết tin nhắn cam kết, chỉ cần nhấn nút Esc và sau đó viết : wq hoặc : wq! và sau đó Enter để đóng tệp unix.


6
giải pháp này là giải pháp hoạt động trên Git Gui bash cho window
ocrampico

! Điều này làm tôi nhớ lại thời đại học, khi chúng tôi thực hiện một số điều chỉnh vi Unix, sau một thời gian dài viết một số :wqlệnh
Irf

:xlà một phím tắt cho :wqtrong Vim.
rnevius 17/12/18

19

Tốt hơn nữa, hãy định cấu hình trình chỉnh sửa thành thứ gì đó mà bạn cảm thấy thoải mái (ví dụ như gedit):

git config --global core.editor "gedit"

Bạn có thể đọc cấu hình hiện tại như thế này:

git config core.editor

Bạn cũng có thể thêm thông điệp cam kết từ dòng lệnh.

git commit -m "blablabla"

và trình soạn thảo sẽ không được mở ở vị trí đầu tiên.


7

Sau khi ra git commitlệnh, bạn đã nhập vào trình chỉnh sửa, vì vậy trước tiên hãy nhấn irồi bắt đầu nhập. Sau khi xác nhận tin nhắn của bạn, Ctrl + csau đó:wq


4

Các lựa chọn thay thế cho Nano (có thể giúp cuộc sống của bạn dễ dàng hơn):

Trên Windows, sử dụng notepad. Trong loại dấu nhắc lệnh:

git config core.editor notepad

Trên Ubuntu / Linux, sử dụng trình soạn thảo văn bản (gedit). Trong loại cửa sổ đầu cuối:

git config core.editor gedit


1

Thay thế cho 'lưu và thoát', bạn có thể sử dụng chức năng của git-commit git-commit-commit, theo mặc định ràng buộc với C-c C-c. Nó sẽ lưu tập tin và đóng nó. Sau đó, bạn vẫn phải đóng emacs với C-x C-c, như đã đề cập trước đó. Tôi hiện đang cố gắng tìm ra cách làm cho emacs tự động thoát.


1

Tôi gặp vấn đề này, tôi đã nhận được dấu nhắc ">" và tôi không thể cam kết. Tôi thay thế "trong bình luận bằng 'và nó hoạt động.

Tôi hy vọng điều này sẽ giúp ai đó!


Aha! Tôi cũng đã bị kẹt với dấu nhắc ">" này. Từ việc đọc bình luận của bạn, tôi nhận ra rằng vì tôi đã sử dụng dấu nháy đơn trong một cơn co thắt trong bình luận của mình, nên thiết bị đầu cuối đang chờ tôi đóng trích dẫn! Cuối cùng tôi cũng được tự do!
Kevin Scharnhorst

0

Không chắc chắn tổ hợp phím đưa bạn đến đó với dấu nhắc> nhưng nó không phải là dấu nhắc bash mà tôi biết. Tôi thường nhận được nó một cách tình cờ. Ctrl + C (hoặc D) đưa tôi trở lại dấu nhắc $.


0

Lưu ý rằng nếu bạn đang sử dụng Sublime làm trình chỉnh sửa cam kết của mình, bạn cần các -n -wcờ , nếu không git cứ nghĩ rằng thông điệp cam kết của bạn trống và hủy bỏ.


0

Trong Mac 1.Press shift + Z shift + Z (viết hoa Z hai lần).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.