github khóa thiết bị đầu cuối mac khi sử dụng lệnh pull


95

Tôi đang trong quá trình học github trên mac (dòng lệnh) và bất cứ khi nào tôi làm điều này, git pull origin mastertôi sẽ nhận được

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
".git/MERGE_MSG" 7L, 293C

thiết bị đầu cuối dường như bị khóa và không cho phép tôi nhập bất cứ thứ gì ngay lập tức, sau đó khi cuối cùng nó cho phép tôi nhập văn bản, có vẻ như nó không nhận ra lệnh git.

Đây có phải là lỗi trong git hay tôi thiếu thứ gì đó?


5
Nó thực sự bị khóa hay bạn không quen vi?
Edward Thomson

2
Tôi không thể cho bạn biết chính xác lý do tại sao, nhưng git muốn bạn nhập một thông báo cam kết và rất có thể bạn đang ở trong trình soạn thảo văn bản.
Misch

à tôi hiểu rồi, vâng tôi không quen với vim. làm cách nào để nhập và lưu bình luận sau đó tiếp tục?
0

7
ichèn một chú thích sau đó nhấn esc và loại:wq
Scott Harwell

1
Nếu bạn không quen thuộc với vibạn không phải là bị khóa?
Ben Racicot

Câu trả lời:


225

Bạn đang ở trong trình soạn thảo văn bản, vim! Đó là một trình soạn thảo văn bản phương thức , vì vậy bạn sẽ cần:

  1. Nhấn iđể vào chế độ chèn .
  2. Giờ đây, bạn có thể nhập tin nhắn của mình, như thể bạn đang ở trong một trình soạn thảo văn bản bình thường (không theo phương thức).
  3. Nhấn escđể quay lại chế độ lệnh .
  4. Sau đó gõ :wtiếp theo enterđể lưu.
  5. Cuối cùng :qenterbỏ thuốc lá.

4
Thật tuyệt khi git chỉ giả sử mọi người đều biết vim.
user124384

2
@ user124384 Git cố gắng sử dụng $EDITORbiến môi trường của bạn nhưng vikhông thể tìm thấy biến này. Bạn có thể cấu hình dự phòng thông qua git config's core.editor. Xem git-scm.com/book/en/v2/…
ceyko,

nơi tôi có thể gõ i?
Val Do

1
@ val-kharitonashvili Trên một bàn phím querty, nó liền kề uo;) Nhưng thực sự, miễn là thiết bị đầu cuối có tiêu điểm, nó sẽ hoạt động.
ceyko

Tại sao điều này thậm chí xảy ra? Tôi đã luôn làm git merge mastervà trong 2 ngày qua, tôi thấy điều này ...
Honey


2

Trình chỉnh sửa trông giống như được vim theo mô tả của bạn. Bảng điều khiển này chỉ đơn giản là yêu cầu bạn viết một số thông báo cho cam kết mà bạn muốn thực hiện và nó là bắt buộc như vậy.

  • Chỉ cần nhập ivà bạn sẽ chuyển sang -- INTER --chế độ, bây giờ bạn có thể viết nhận xét của mình.

  • Sau khi bạn viết xong, hãy nhấn escphím trên bàn phím và bạn sẽ chuyển đến chế độ lệnh. ( xem ở cuối bảng điều khiển )

  • Bây giờ lưu các thay đổi bằng cách viết, :wsau đó nhấn enterphím

Viết lệnh <code>: w </code>

  • Bạn có thể thoát ngay bây giờ bằng cách viết :qsau đó bằng cách nhấn enterphím

Viết lệnh <code>: q </code>

  • Tiếng hoan hô! Cuối cùng, bạn quay lại bảng điều khiển chính.

2

Đơn giản hơn là đầu tiên ESC và sau đó : x(chữ thường).


1

Chạy lệnh này

git config --global core.editor "gedit"

Thêm tin nhắn của bạn vào tệp này và lưu nó. Quay lại kéo ngay bây giờ.


0

Tôi đã khắc phục sự cố này bằng cách thực hiện các bước sau

  1. Xóa # MERGE_MSG #

    rm .git/\#MERGE_MSG#

  2. Xóa MERGE_HEAD

    rm .git/MERGE_HEAD

Ngoài ra, tôi đặt rõ ràng trình chỉnh sửa của git thành trình chỉnh sửa mà tôi quen thuộc với vim (bạn có thể đặt nano )

`git config --global core.editor "vim"`

0

Bạn có thể làm git checkout --merge yourbranch

Việc hợp nhất ba chiều giữa nhánh hiện tại, nội dung cây làm việc của bạn và nhánh mới được thực hiện và bạn sẽ ở trên nhánh mới.


0

Các vấn đề thường xảy ra khi chúng ta viết sai một thứ gì đó.
Có nhiều khả năng lệnh này mà bạn quan tâm:

git commit -m "message"

nếu có vấn đề, nó có thể nói gì đó như

Your branch and 'origin/master' have diverged,
and have 2 and 1 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)

Và sử dụng:

git pull

điều này sẽ dẫn đến:

Already up-to-date.

Sau đó, nó là tốt để kiểm tra:

git status

và thử đẩy lại:

git push
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.