질문 : Windows에서 Git과 함께 작동하도록 편집기를 설정하려면 어떻게해야합니까?
Windows에서 Git을 시도하고 있습니다. "git commit"을 시도하고이 오류가 발생했습니다.
터미널은 멍청하지만 VISUAL 또는 EDITOR가 정의되지 않았습니다. -m 또는 -F 옵션을 사용하여 메시지를 제공하십시오.
그래서 EDITOR라는 환경 변수가 필요하다는 것을 알았습니다. 문제 없어요. 메모장을 가리 키도록 설정했습니다. 거의 효과가있었습니다. 기본 커밋 메시지가 메모장에서 열립니다. 그러나 메모장은 베어 라인 피드를 지원하지 않습니다. 나가서 Notepad ++를 얻었지만 예상대로 Git에서 작동하는 방식으로 %EDITOR%
로 설정하는 방법을 알아낼 수 없습니다.
저는 Notepad ++와 결혼하지 않았습니다. 이 시점에서 나는 내가 어떤 편집기를 사용하는지 상관하지 않습니다. 명령 줄 ( -m
)이 아닌 편집기에서 커밋 메시지 를 입력 할 수 있기를 원합니다.
Windows에서 Git을 사용하는 분들 : 커밋 메시지를 편집하기 위해 어떤 도구를 사용하고 있으며이를 작동시키기 위해 무엇을해야 했습니까?
답변
2015 년 9 월 업데이트 (6 년 후)
git-for-Windows (2.5.3) 의 마지막 릴리스에는 이제 다음이 포함됩니다.
git config core.editor notepad
를 구성하면 사용자 notepad.exe
를 기본 편집기로 사용할 수 있습니다 .git config format.commitMessageColumns 72
구성 72는 메모장 래퍼에 의해 선택되고 사용자가 편집 한 후 커밋 메시지를 줄 바꿈합니다.
Johannes Schindelin ( dscho
)의 commit 69b301b 를 참조하십시오.
그리고 Git 2.16 (2018 년 1 분기)은 에디터가 숨겨진 창이나 모호한 곳으로 열리고 사용자가 길을 잃을 경우 에디터를 스폰 할 때 사용자가 편집을 마칠 때까지 기다리고 있다는 메시지를 사용자에게 표시합니다.
commit abfb04d (2017 년 12 월 7 일) 및 Lars Schneider ( larsxschneider
)의 commit a64f213 (2017 년 11 월 29 일)을 참조하십시오.
도움 : Junio C gitster
(gitster) .
(Merged by Junio C gitster
- gitster-in commit 0c69a13 , 19 Dec 2017)
사용자 입력을 열고 대기하는 Git 명령 (예 : " git rebase -i
")에 의해 그래픽 GIT_EDITOR
가 생성되면 편집기 창이 다른 창에 의해 가려 질 수 있습니다.
사용자는 Git이 진행되기 전에 다른 창과 상호 작용해야한다는 사실을 깨닫지 못한 채 원래 Git 터미널 창을 응시할 수 있습니다. 이 사용자에게는 Git이 매달려있는 것처럼 보입니다.
Git이 원래 터미널에서 편집기 입력을 기다리고 있다는 메시지를 인쇄하고 터미널이 마지막 줄 지우기를 지원하는 경우 편집기가 돌아올 때 제거합니다.
원래 답변
방금 git 버전 1.6.2.msysgit.0.186.gf7512 및 Notepad ++ 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의 답변 은 스크립트 추가를 피할 수 있지만 간단한 따옴표 사이 에서 프로그램 자체를 직접 참조 할 수 있다는 가능성을 언급합니다. 슬래시의 방향에 유의하십시오! /
NOT \
를 사용하여 경로 이름에서 폴더를 구분하십시오!
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
다시 등록하지 않고도 다른 경로 나 다른 옵션으로 플레이 할 수 있습니다.
실제 솔루션 (스크립트 포함)은 다음을 실현하는 것이 었습니다.
구성 파일에서 참조하는 것은 실제로 DOS 스크립트가 아닌 /bin/sh
) 스크립트입니다.
그래서 작동하는 것은 :
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 ...
'를 수행 할 수 있습니다.
봇 명령은 notepad ++의 새 인스턴스 (따라서 -multiInst
'옵션)를 트리거하고 계속하기 전에 해당 인스턴스가 닫힐 때까지 기다립니다.
\
'가 아닌'/ '만 사용합니다. 그리고 옵션 2를 사용하여 msysgit을 설치했습니다. ( PATH
git\bin
디렉토리를 추가하지만 일부 내장 Windows 도구를 재정의하지 않음)
notepad ++ 래퍼가 .bat라는 사실은 중요하지 않습니다.
이름을 'npp.sh'로 지정하고 [git]\cmd
디렉토리 (또는 PATH 환경 변수가 참조하는 디렉토리)에 넣는 것이 좋습니다.
또한보십시오:
- Visual diff 프로그램으로 'git diff'출력을 보려면 어떻게해야합니까? 일반 이론을 위해
- msysgit / gitk로 DiffMerge를 어떻게 설정합니까? 외부 도구 (DiffMerge 및 WinMerge)의 또 다른 예
lightfire228 은 주석에 추가합니다.
N ++가 빈 파일을 열기 만하고 git이 커밋 메시지를받지 않는 문제가있는 사람은 " Aborting commit due to empty message .bat
또는 .sh
파일을 다음과 같이 변경하십시오.
"<path-to-n++" .git/COMMIT_EDITMSG -<arguments>.
그러면 메모장 ++에 비어있는 새 파일이 아닌 임시 커밋 파일을 열도록 지시합니다.
출처 : https://stackoverflow.com/questions/10564/how-can-i-set-up-an-editor-to-work-with-git-on-windows
'개발관련 > Git' 카테고리의 다른 글
Git에서 분기 토폴로지 시각화 (0) | 2021.07.30 |
---|---|
git 프로젝트의 'bin'디렉토리 무시 (0) | 2021.07.30 |
Windows 용 Git에서 파일 이름이 너무 깁니다. (0) | 2021.07.28 |
Git 하위 모듈을 오리진의 최신 커밋으로 업데이트 (0) | 2021.07.28 |
[오류] git: undo all working dir changes including new files (0) | 2021.07.27 |