빈 커밋 메시지로 인해 커밋 중단


81

초보자 git 사용자로서 작업을 수행하려고 할 때

git commit -a -v

편집기에 커밋 메시지를 입력하고 파일을 닫으면 다음 오류가 발생합니다.

Aborting commit due to empty commit message.

나는이 문제를 다루는 거의 모든 주제를 읽었고, 편집자들을 바꾸었고, 기본적으로 모든 것을 시도했지만 아무것도 도움이되지 않았습니다. 어떻게해야합니까?

내가 알아 차린 것은 메모장 ++로 전체 프로세스를 시도하는 동안 파일을 저장할 수 없다는 것입니다.

가능한 해결 방법은 다음과 같습니다.

git commit -am "SomeComment"

그러나 그렇게함으로써 나는 git 사용의 목적을 무효화하고 있다고 느낍니다. 변경 사항을 제대로 문서화하고 싶습니다.


어떤 버전의 Windows 용 git을 사용하고 있습니까?
조쉬 리

3
여기서 유일한 무효화는 관련 커밋 메시지를 입력하지 않는 것입니다. git commit -am "SomeRelevantComment"
NickSuperb 2011 년

편집기에서 파일을 저장하려고하면 어떤 오류가 발생합니까?
Karl Bielefeldt

Windows 7에서 'C : \ Program Files'에있는 파일을 작업하는 동안이 문제가 발생했습니다. Windows 7은이 디렉터리 (및 그 아래)에 쓰기를 방지하며 커밋 메시지를 작성하는 임시 파일 (COMMIT_MSG 또는 기타)이 .git 디렉터리에 생성되므로 실패했습니다.
Gauthier 2013 년

"문서화"? 흠 ...
Patrick

답변:


138

Git 구성에서 편집기를 설정할 때 매개 변수 "-w"를 전달하여 Git이 사용자 정의 편집기에 입력하는 커밋 메시지를 기다리도록합니다.

git config --global core.editor "[your editor] -w"

1
숭고한 텍스트에 대한 Samesies 2. 다른 많은 것들을 시도해 보았는데, 이것이 처음으로 작동했습니다. 감사합니다 Zak.
Scott Silvi 2014

숭고한 텍스트 2 또는 gedit를 테스트로 사용하여 수정되었습니다.

숭고한 텍스트 3 : -w 따옴표 안에, 천재. 나는 다른 많은 포럼과 예에서 보았 듯이 따옴표 밖에서 그것을 사용함으로써 허둥 대고 있었다.
danjah

7
macvim mvim -f의 경우 -w플래그 대신 사용 하십시오 .
nishanthshanmugham 2015 년

1
당신이 메시지 때문에 커밋 설정의 gedit의 기존 인스턴스를 사용할 때 가끔 버그가있을 것 같다 "gedit -w"나를 위해 didnt 한 일을하지만, "gedit -s"또는 "gedit --standalone"작품.
jfv

42

커밋 주석이 #문자로 시작하는 한 줄이면이 ​​오류가 발생할 수 있습니다 . 예를 들어 커밋 메시지 텍스트 편집기 창에서 다음과 같이 끝났을 때이 오류가 발생했습니다.

#122143980 - My commit message was here. The number to the left is a Pivotal Tracker story/ticket number that I was attempting to reference in the commit message.
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch [MYBRANCH]
# Your branch is up-to-date with 'origin/[MYBRANCH]'.
#
# Changes to be committed:
#   modified:   [MYFILE1]
#   modified:   [MYFILE2]
#

물론 문제는 내 커밋 메시지가 #문자로 시작 했기 때문에 git이 그 줄을 주석으로 보았고 결과적으로 커밋 메시지가 주석 만 남았 기 때문에 비어있는 것으로 보았다는 것입니다!

수정 사항은 내 커밋 메시지를 #.

필자의 경우 Pivotal ID를 대괄호로 묶으면 git과 Pivotal 이 모두 만족 스러워 졌습니다 .

[#122143980] My commit message here. 

3
GitLab은 문제에 대해 동일한 구문을 사용합니다. 저는 커밋 메시지에 문제 식별자를 접두사로 붙이는 데 익숙하며 이것이 문제였으며 문제 번호의 브라케팅도 GitLab에서도 잘 작동합니다.
Orbling

2
어, 멋지군요! 그것은 나를 곤경에 빠뜨리고 있었지만 실제로 GitHub 문제 번호로 커밋을 시작했으며 #xxxx Fixed: ...이것을 변경하면 Fixed #xxxx: ...실제로 해결되었습니다. 감사합니다.
Slartibartfast

을 사용하여 github 문제를 참조했습니다 #123 some message. 커밋 중에 작동했지만 나중에 rebase편집기를 통해 커밋 할 때 실패했습니다 .
Stafford Williams

20

Visual Studio Code 용

git config --global core.editor "code -w"

원자 용

git config --global core.editor "atom -w"

숭고한

git config --global core.editor "subl -w"

1
첫 번째 두 가지 방법의 차이를 확인 할 수 있습니다
mcalex

그리고 어떻게 원래 설정으로 돌아가나요? 아니면 현재 설정을 어떻게 읽습니까?
Tim

8

적절한 (긴 여러 줄 주석) 문서로 커밋하고 싶지만 -m옵션이 필요하지 않은 경우 수행 할 수있는 작업 (그리고 커밋을 준비 할 때 수행하는 작업 )은 다음과 같습니다.

  • 별도의 파일 'doc-commit' (또는 원하는 이름 )에 문서를 작성하십시오 (변경하는 동안 ).
  • ' git commit -a -F /path/to/doc-commit'로 커밋 )

간단히 말해, 커밋 메시지로 별도의 파일 (원하는 경로에있을 수 있음)을 사용하십시오.


해당 파일 ( # my comment)에 주석을 달 수 있습니까?
borisdiakur 2014

@Lego 그렇게 생각합니다 (직접 테스트하지는 않았지만 텍스트 파일의 전체 내용을 커밋 메시지
VonC

방금 시도해 보았습니다. 내 댓글이 메시지의 일부로 취급 되었기 때문에 텍스트 파일에 댓글을 넣을 수없는 것 같습니다. 어쨌든 나는 작업을 수행하는 동안 별도의 doc-commit 파일에 변경 사항을 문서화하는 프로세스를 좋아합니다. 감사합니다!
borisdiakur 2014

8

나는 또한 Git의 초보자입니다. 나는 기본적으로 당신과 같은 문제에 직면했습니다. 다음을 입력하여 해결했습니다.

git commit -a -m 'some message'

그 이유는 git은 메시지없이 커밋을 허용하지 않기 때문입니다. 일부 메시지를 커밋 명령과 연결해야합니다.


5

이 문제가 발생했습니다. 1.8.0 이전에 방금 설치했는데 위의 내용을 약간 수정해야한다는 것을 알았습니다. 나는 이것에 대해 매우 새로운 것이지만, 본질적으로 커밋 할 때 적어도 content.editor에 대해 설정된 것이 있다면 core.editor가 아닌 content.editor를 사용하는 것 같습니다.

그래서

git config --global content.editor "pico -w"

드디어 저를 맡게했습니다! 물론 사용하는 편집기를 사용하십시오.

이것이 언젠가 누군가를 돕기를 바랍니다!


5

git은 메시지가 지정되지 않은 커밋을 허용하지 않습니다. 커밋 대화 상자에서 커밋 메시지를 지정 했습니까?

#으로 시작하는 줄은 Git에서 주석으로 처리되며 주석으로 간주되지 않으며 Git에서 무시됩니다.


5

먼저 편집자의 이전 항목을 제거하십시오.

git config --global --unset-all core.editor
git config  --unset-all core.editor

편집기 설정 :

  • 메모장 ++의 경우

    git config --global core.editor "Notepad++ -w"
    git config core.editor "Notepad++ -w"
    
  • 숭고한

    git config --global core.editor "Notepad++ -w"
    git config core.editor "subl -w"
    

4

내 아톰 편집기를 다음과 같이 구성했습니다.

git config --global core.editor "atom --wait"

하지만 내가했을 때

git commit

atom이 이미 시작되었을 때 주석을 추가 할 수있는 새 탭이 열렸지만 git은 내가 파일을 저장할 때까지 기다리지 않고 즉시 "Aborting"메시지를 던졌습니다. 내가 atom을 닫고 한 번 더 커밋을 시도했을 때 git은 atom을 시작하고 주석이 추가되기를 기다렸다.


4

'Sublime'편집 기용 Windows 시스템 에서 다음 폴더 [YOUR DRIVE LETTER] : / users / username /의 .gitconfig 파일에 다음 행을 추가 할 수도 있습니다.

[core]
  editor = '[YOUR DRIVE LETTER]:/Program Files/Sublime Text [YOUR VERSION NUMBER]/sublime_text.exe' --wait

도움이 되었기를 바랍니다.


나를 위해 이것은 --wait. 파일 경로에 공백이 포함 된 작업 예제가 Program Files있습니까? 감사.
zx81

2

커밋 메시지가 필요합니다.

Vim 용 : (저도 초보자입니다. 지금까지 vim으로 만 작업했습니다)

명령 후

git commit -v

이름이있는 파일로 이동합니다.

".git / COMMIT_EDITMSG"

그것은 당신의 편집기에서 열립니다 (제 경우에는 vim입니다)

당신이했을 때 본 것과 똑같은 주석이 달린 많은 텍스트를 찾을 수 있습니다.

git status  OR
git diff

눈치 채면 맨 위에 커밋 메시지가 예상되는 빈 줄을 볼 수 있습니다. 여기에 커밋 메시지를 입력하고 편집기를 저장하고 종료 할 수 있습니다. 끝났다!


완벽! 나는 간단한 해결책이있을 것이라는 것을 안다
Scott Stensland

2
git config --global core.editor "subl -w" -F 

이것은 많은 시행 착오 끝에 나를 도왔습니다. 누군가가 유용하다고 생각하기를 바랍니다.

나는 subl 명령으로 사용하기 위해 sublime 3을 이미 심볼릭 링크했습니다.

""외부의 -F 플래그가 작동하는 이유에 대해 완전히 단서가 없습니다.


1
-F 플래그가 필요하지 않았습니다. -w로 충분했습니다. -w는 Sublime에게 "반환하기 전에 파일이 닫힐 때까지 기다 subl --help립니다 "(에서 )에 알립니다 .
Galen Long

1

대문자 W를 확인하십시오.

git config --global core.editor "open -a 'Sublime Text 2'-W"

또는 다음 명령을 사용하여 제대로 작동하지 않는 기존 명령을 대체하십시오.

git config --replace-all core.editor "open -a 'Sublime Text 2'-W"


1

Notepad ++ (Windows)에 대한 의견을 남기려면 다음을 수행하십시오.

1. 배치 파일을 어딘가에 만듭니다 (예 : c : \ Users \ me \ scripts \ npp.bat)
배치 파일에 다음을 작성합니다 (Notepad ++가 설치된 위치에 따라 다름).

"C:\Program Files\Notepad++\notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$*"

2. 배치 파일을 저장합니다.
3. 확인 (Windows 사용자 폴더에 보통) 및 만들 열기 .gitconfig
에서 [핵심] 섹션이 있습니다 :

editor = '"c:\\Users\\me\\scripts\\npp.bat"'

또는 다음을 실행하십시오.

git config --global core.editor '"c:\Users\me\scripts\npp.bat"'

4. 이제 어떤 종류의 커밋을 수행하면 Notepad ++가 열리고 git commit은 이제 notepad ++ 창이 닫힐 때까지 기다립니다.


1

먼저, 계속 진행하려면 git이 일종의 편집기 프롬프트 (visual studio / sublime / notepad ++ / atom 등)를 열도록 올바르게 구성되어 있는지 확인하십시오.

  • 제 경우에는 Ubuntu 환경에서 Visual Studio를 사용하도록 git을 구성했습니다.
  • 나는 변경을 시도했지만 주어진 실패로 실패했습니다.
  • 그런 다음 .gitconfig파일을 보고 편집기에 -w매개 변수 가 없음을 알았습니다.
  • 나는 실행 git config --global core.editor "code -w"명령을 내 다시 확인해 .gitconfig파일의 눈치 -w를 올바르게가 추가되었습니다.
  • 변경 사항을 다시 시도해 보았고 저에게 효과적이었습니다.

이것이 저와 같은 다른 초보자에게 도움이되기를 바랍니다.


0

새 창을 여는 멋진 MacVim 편집기에서 호출 된 쉘과 동일한 창에서 열리는 / user / bin / vim의 표준 기본 vim으로 전환하여 문제를 해결했으며, 수정 된 것 같습니다. 문제.


1
-f 플래그를 추가하기 만하면됩니다. 예git config --global core.editor "mvim -f"
Ilias Karim

0

이 문제가 발생하여 커밋 후 의견을 남기지 않으면 오류가 발생한다는 것을 알았습니다. 바로 메인 bash로 돌아 가기 위해 점프하면 커밋되지 않습니다. 더 명확하게 말하면 다른 편집기가 아닌 GIT Bash를 사용하고 있습니다.


0

전체 아톰 파일 경로를 사용할 때 작동하지 않았으므로 다음을 사용하는 대신 :

git config --global core.editor "c:/programs/atom/atom.exe -w"

나는 다음을 사용했다 :

git config --global core.editor "atom -w"

그리고 그것은 잘 작동했습니다. 행운을 빕니다!

중요 : 먼저 atom이 사용중인 명령 줄에서 직접 (atom) 호출을 올바르게 시작하는지 확인하십시오.


0

커밋 오류 해결 방법

여기에 이미지 설명 입력

위에서 보았 듯이 커밋하는 동안 입력해야하는 커밋 필드가 있습니다. 이것은 기본적으로 버전 제어 및 각 커밋의 변경 사항을 이해하기위한 것입니다.

입력하지 않으면 다음 오류가 발생합니다. 커밋 메시지가 비어있어서 커밋 중단

참고 : 위의 내용은 Rstudio 커밋 및 파일 가져 오기에서만 작동합니다.


0

이 오류가 발생했으며를 사용했지만 git config --global core.editor "code -w"파일을 닫을 때까지 기다리지 않았습니다. 즉시 중단됩니다.

내 문제는 이전에이 명령을 실행했다는 것 git config core.editor "code"입니다.

그 것 core.editor(I 로컬 작업 디렉토리 사양이 추정되는)이,보다 우선했다 --global core.editor.

경우 git config --global core.editor "code -w"(또는 무엇이든 편집기를 사용하려고하는) 당신을 위해 작동하지 않습니다는 생략하십시오 --global.

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