pull 명령을 사용할 때 github가 mac 터미널을 잠급니다.


95

나는 Mac (명령 줄)에서 github를 배우는 과정에 있으며 할 때마다 이것을 git pull origin master얻습니다.

# 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

터미널이 잠긴 것처럼 보이며 즉시 아무것도 입력 할 수 없습니다. 그러면 마침내 텍스트를 입력 할 수있게되면 git 명령을 인식하지 못하는 것 같습니다.

이것은 git의 버그입니까, 아니면 뭔가 빠졌습니까?


5
정말 잠겼 vi습니까 아니면 익숙하지 않습니까?
Edward Thomson

2
이유를 정확히 말할 수는 없지만 git은 커밋 메시지를 입력하기를 원하며 아마도 텍스트 편집기 vim에 있습니다.
Misch

아, 그래, 나는 vim에 익숙하지 않다. 주석을 입력하고 저장 한 다음 계속하려면 어떻게합니까?
0

7
입력 iesc 키를 눌러 입력 후 주석 삽입:wq
스콧 하웰

1
익숙하지 않다면 vi갇혀 있지 않나요?
Ben Racicot 19

답변:


225

당신은 텍스트 편집기에 있습니다, vim! 그것은이다 모달 당신이 필요하므로, 텍스트 편집기 :

  1. 을 눌러 삽입 모드i 로 들어 갑니다 .
  2. 이제 일반 (모달이 아닌) 텍스트 편집기에있는 것처럼 메시지를 입력 할 수 있습니다.
  3. 명령 모드esc 로 돌아가려면 누릅니다 .
  4. 입력 한 다음 :w다음 enter저장합니다.
  5. 마지막으로 :q다음 enter종료합니다.

4
git은 모든 사람이 vim을 알고 있다고 가정하는 것이 좋습니다.
user124384 2015-08-29

2
@ user124384 Git은 $EDITOR환경 변수 를 사용하려고 하지만 vi찾을 수없는 경우 대체합니다 . git config의 core.editor. 참조 git-scm.com/book/en/v2/...
ceyko

어디에 입력 할 수 i있습니까?
Val Do

1
@ val-kharitonashvili 쿼티 키보드에서는 uo;)에 인접 해 있지만 실제로 터미널에 포커스가있는 한 작동합니다.
ceyko 2015 년

왜 이런 일이 발생합니까? 나는 항상하고있다 git merge master지난 2 일 내에,이 ...보고 있어요


2

설명에 따르면 편집기는 vim 처럼 보입니다 . 이 콘솔은 단순히 만들고 싶은 커밋에 대한 메시지를 작성하라고 말하고 있으며, 그렇게하는 것은 필수입니다.

  • 그냥 입력 i하고 당신은 갈거야 -- INTER --지금 당신은 귀하의 의견을 쓸 수 있습니다 모드.

  • 쓰기를 마친 후 esc키보드에서 키를 누르면 명령 모드로 이동합니다. ( 콘솔 하단 참조 )

  • 이제 글을 쓰고 키 :w를 눌러 변경 사항을 저장하십시오.enter

<code> : w </ code> 명령 작성

  • 글을 쓰고 키 :q를 눌러 지금 종료 할 수 있습니다.enter

<code> : q </ code> 명령 작성

  • 만세! 마지막으로 메인 콘솔로 돌아 왔습니다.


1

이 명령 실행

git config --global core.editor "gedit"

이 파일에 메시지를 추가하고 저장하십시오. 지금 당장 돌아가십시오.


0

다음 단계를 실행하여이 문제를 해결했습니다.

  1. # MERGE_MSG # 제거

    rm .git/\#MERGE_MSG#

  2. MERGE_HEAD 제거

    rm .git/MERGE_HEAD

또한 git의 편집기를 내가 vim에 익숙한 편집기로 명시 적으로 설정했습니다 ( nano 설정 가능 ).

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

0

넌 할 수있어 git checkout --merge yourbranch

현재 분기, 작업 트리 내용 및 새 분기 간의 3 방향 병합이 완료되고 새 분기에있게됩니다.


0

문제는 대개 철자가 틀렸을 때 발생합니다.
이 명령에 관심이있을 가능성이 높습니다.

git commit -m "message"

문제가 있으면 다음과 같이 말할 수 있습니다.

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)

그리고 사용 :

git pull

결과는 다음과 같습니다.

Already up-to-date.

그런 다음 확인하는 것이 좋습니다.

git status

다시 밀기 :

git push
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.