2015 년 9 월 업데이트 (6 년 후)
Windows 용 git (2.5.3) 의 마지막 릴리스 에는 다음이 포함됩니다.
구성함으로써 git config core.editor notepad
사용자 는 이제 notepad.exe
기본 편집기로 사용할 수 있습니다 . 메모장 래퍼가
구성 git config format.commitMessageColumns 72
을 선택하고 커밋 메시지를 사용자가 편집 한 후 줄 바꿈합니다.
Johannes Schindelin ( )의 커밋 69b301b 를 참조하십시오 .dscho
그리고 Git 2.16 (Q1 2018)은 편집기를 숨길 때 숨겨져 있거나 사용자가 길을 잃을 경우를 대비하여 편집기를 생성 할 때 사용자가 편집을 마치기를 기다리고 있다는 메시지를 표시합니다.
참조 abfb04d 커밋 (07 년 12 월 2017), 및 a64f213 커밋 에 의해 (2017 11월 29일) 라스 슈나이더 ( larsxschneider
) .
도움 : Junio C Hamano ( gitster
) .
(의해 병합 - Junio C 하마노 gitster
- 에 0c69a13 커밋 2,017 19 십이)
launch_editor()
: Git이 사용자 입력을 기다린다는 것을 나타냅니다
GIT_EDITOR
열려 있고 사용자 입력을 기다리는 Git 명령에 의해 그래픽 이 생성 될 때 (예 : " git rebase -i
") 다른 창에 의해 편집기 창이 가려 질 수 있습니다.
사용자는 Git을 진행하기 전에 다른 창과 상호 작용해야한다는 것을 인식하지 않고도 원래 Git 터미널 창을 응시할 수 있습니다. 이 사용자에게는 Git이 걸려있는 것처럼 보입니다.
터미널이 마지막 줄 지우기를 지원하는 경우 Git이 원래 터미널에서 편집기 입력을 기다리고 있다는 메시지를 인쇄하고 편집기가 리턴 될 때이를 제거하십시오.
원래 답변
방금 git 버전 1.6.2.msysgit.0.186.gf7512 및 메모장 ++ 5.3.1로 테스트했습니다.
내가 선호 하지 내가 노력 있도록, 편집기 변수를 설정해야합니다 :
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\""
# or
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\" %*"
그것은 항상 다음을 제공합니다.
C:\prog\git>git config --global --edit
"c:\Program Files\Notepad++\notepad++.exe" %*: c:\Program Files\Notepad++\notepad++.exe: command not found
error: There was a problem with the editor '"c:\Program Files\Notepad++\notepad++.exe" %*'.
내가 포함하여 npp.bat를 정의하면 :
"c:\Program Files\Notepad++\notepad++.exe" %*
그리고 나는 입력 :
C:\prog\git>git config --global core.editor C:\prog\git\npp.bat
DOS 세션에서만 작동 하지만 git shell 에서는 작동 하지 않습니다 .
(core.editor 구성 메커니즘을 사용하면 " start /WAIT...
"가 포함 된 스크립트가 작동하지 않고 새 DOS 창만 열 수 있습니다)
Bennett의 답변 은 스크립트 추가를 피할 수 있지만 간단한 인용 부호 사이 에서 프로그램 자체 를 직접 참조하는 가능성을 언급 합니다 . 슬래시 방향에주의하십시오! 사용 /
하지 \
경로 이름에 별도의 폴더에!
git config --global core.editor \
"'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
또는 64 비트 시스템 인 경우 :
git config --global core.editor \
"'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
그러나 나는 스크립트를 사용하는 것을 선호합니다 (아래 참조) : 다시 등록하지 않고도 다른 경로 또는 다른 옵션으로 재생할 수 있습니다 git config
.
실제 솔루션 (스크립트 사용)은 다음을 인식하는
것이 었습니다. 구성 파일에서 참조하는 것은 실제로/bin/sh
DOS 스크립트가 아니라 쉘 ( ) 스크립트입니다.
작동하는 것은 다음과 같습니다.
C:\prog\git>git config --global core.editor C:/prog/git/npp.bat
로 C:/prog/git/npp.bat
:
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst "$*"
또는
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$*"
이 설정 git config --global --edit
으로 DOS 또는 Git Shell에서 ' git rebase -i ...
'를 수행 하거나 DOS 또는 Git Shell에서 ' '를 수행 할 수 있습니다 .
봇 명령은 새로운 notepad ++ 인스턴스를 트리거합니다 (따라서-multiInst
'옵션') 계속 진행하기 전에 해당 인스턴스가 닫힐 때까지 기다립니다.
'가 아닌 \
' / '만 사용합니다 . 그리고 옵션 2를 사용하여 msysgit을 설치했습니다 ( 환경 변수에 git\bin
디렉토리를 추가 PATH
하지만 일부 내장 Windows 도구를 무시하지 않음)
notepad ++ 래퍼가 .bat라는 사실은 중요하지 않습니다.
이름을 'npp.sh'로 지정하고 [git]\cmd
디렉토리 (또는 PATH 환경 변수가 참조 하는 디렉토리) 에 두는 것이 좋습니다.
또한보십시오:
lightfire228 은 주석에 추가합니다 :
N ++에서 빈 파일을 열고 git가 커밋 메시지를받지 않는 문제가있는 사람은 " 빈 메시지로 인해 커밋 중단 ": .bat
또는 .sh
파일을 다음 과 같이 변경하십시오 .
"<path-to-n++" .git/COMMIT_EDITMSG -<arguments>.
그러면 메모장 ++에 비어있는 새 파일 대신 임시 커밋 파일을 열도록 지시합니다.