Git의 기본 편집기로 Visual Studio Code를 사용하는 방법 due to empty commit

커맨드 라인에서 git을 사용할 때 Visual Studio Code를 기본 편집기로 사용할 수 있는지, 즉 커밋 주석을 만들고 커맨드 라인에서 파일의 diff를 볼 수 있는지 궁금합니다.

병합을 수행하는 데 (최소 1 분) 사용할 수는 없지만 diff를 볼 때 사용할 수 있는지, 그렇다면 명령 줄 옵션이 필요한지 알고 있습니다. 이를 위해 .gitconfig 파일?

업데이트 1 :

나는에 대해 수행 한 것과 유사한 접근 시도 과거에 메모장 + + , 즉

#!/bin/sh

"c:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$*"

그리고 사용 :

#!/bin/sh

"C:\Users\gep13\AppData\Local\Code\app-0.1.0\Code.exe" "$*"

그러나 이로 인해 오류 메시지가 나타납니다.

C:\temp\testrepo [master +1 ~0 -0]> git commit
[8660:0504/084217:ERROR:crash_reporter_win.cc(70)] Cannot initialize out-of-process crash handler
Aborting commit due to empty commit message.
C:\temp\testrepo [master +1 ~0 -0]>

코드가 예상 된 내용과 함께 올바르게 열리지 만 응답을 기다리는 중이 아닙니다. 즉, 저장을 클릭하고 창을 닫아서 프롬프트로 돌아가십시오.

업데이트 2 :

VSCode를 개발하는 개발자 중 한 사람으로부터 방금 들었습니다. 이 기능은 현재 지원되지 않는 것 같습니다 🙁

https://twitter.com/IsidorN/status/595501573880553472

이 기능이 추가되는 것을보고 싶다면 여기에 투표를 추가하는 것이 좋습니다.

http://visualstudio.uservoice.com/forums/293070-visual-studio-code/suggestions/7756482-support-git-configure-diff-and-merge-tools

업데이트 3 :

나는 한 안정적으로 통보 나는 그것을 포함하는 향후의 릴리스로 기대 때문에이 기능은 VSCode 팀에 의해 포착되었습니다.

업데이트 4 :

아래 @ f-boucheros 주석 덕분에 VS Code가 커밋 주석, rebase 등의 기본 편집기로 작동하도록 할 수있었습니다. diff 도구로도 사용할 수 있는지 여전히 확인하고 싶습니다.

업데이트 5 :

질문에 대한 대답에 따라 이제 V1.0 코드 릴리스를 사용하여 가능합니다.



답변

최신 릴리스 ( 2016 년 3 월에 릴리스 된 v1.0 )에서 VS 코드를 기본 git commit / diff 도구로 사용할 수 있습니다. 문서에서 인용 :

  1. code --help명령 행에서 실행할 수 있는지 확인 하고 도움을 받으십시오.

    • 도움말이 보이지 않으면 다음 단계를 따르십시오.

      • Mac : Shell Command 선택 : Command Palette 에서 경로에 ‘Code’명령을 설치 하십시오 .

        • 명령 팔레트는 VS 코드 내부에서 shift+ + 를 누르면 팝업됩니다 P. ( Windows의 경우 shift+ ctrl+ P)
      • Windows : 설치 중에 PATH에 추가를 선택했는지 확인하십시오 .
      • Linux : 새로운 .deb 또는 .rpm 패키지를 통해 Code를 설치했는지 확인하십시오.
  2. 명령 행에서 다음을 실행하십시오. git config --global core.editor "code --wait"

이제 git config --global -eGit 구성을위한 편집기로 VS Code를 실행 하고 사용할 수 있습니다 .

VS 코드를 diff 도구로 사용하는 기능을 지원하려면 다음을 추가하십시오.

[diff]
    tool = default-difftool
[difftool "default-difftool"]
    cmd = code --wait --diff $LOCAL $REMOTE

이것은 --diffVS 코드로 전달하여 두 파일을 나란히 비교할 수 있는 새로운 옵션을 활용합니다 .

요약하면 다음과 같이 VS 코드와 함께 Git을 사용할 수있는 몇 가지 예가 있습니다.

  • git rebase HEAD~3 -i VS 코드를 사용하여 대화식 리베이스 가능
  • git commit 커밋 메시지에 VS 코드를 사용할 수 있습니다.
  • git add -p다음에 e대화 형 추가에 대한
  • git difftool <commit>^ <commit> VS 코드를 변경을 위해 diff 편집기로 사용할 수 있습니다

답변

내가 이해하기 위해 VSCode는 더 이상 AppData에 없습니다.

따라서 명령 프롬프트 창에서 해당 명령을 실행하여 기본 git 편집기를 설정하십시오.

git config --global core.editor "'C:\Program Files (x86)\Microsoft VS Code\code.exe' -w"

매개 변수는 -w, --wait윈도우 반환하기 전에 닫아야 기다리는 것입니다. Visual Studio Code는 Atom Editor를 기반으로합니다. atom이 설치되어 있으면 명령을 실행하십시오 atom --help. 도움말에서 마지막 인수는 기다림입니다.

다음에 그렇게하면 git rebase -i HEAD~3Visual Studio Code가 나타납니다. VSCode가 닫히면 Git이 리드를 다시 가져옵니다.

참고 : VSCode의 현재 버전은 0.9.2입니다.

도움이 되길 바랍니다.


답변

다음 명령을 사용해야합니다.

git config --global core.editor "'C:\Program Files\Microsoft VS Code\code.exe' -n -w"

Git Bash에서 편집기를 시작할 수 있는지 확인하십시오

짧은 경로로 Code.exe를 사용하려면 .bash_profile에 다음 줄을 추가하면됩니다.

alias vscode="C:/Program\ Files/Microsoft\ VS\ Code/Code.exe"

그리고 이제 vscode명령 만 사용 하거나 이름을 지정 하여 호출 할 수 있습니다

추가 정보 :

설치 프로그램에서 Visual Studio Code를 % PATH %에 추가하므로 콘솔에서 ‘code’를 입력하여 해당 폴더에서 VS Code를 열 수 있습니다. % PATH % 환경 변수에 대한 변경 사항을 적용하려면 설치 후 콘솔을 다시 시작해야합니다.


답변

또 다른 유용한 옵션은 EDITOR환경 변수 를 설정하는 것입니다. 이 환경 변수는 많은 유틸리티에서 어떤 편집기를 사용해야하는지 알기 위해 사용됩니다. core.editor설정 되지 않은 경우 Git도 사용합니다 .

다음을 사용하여 현재 세션에 설정할 수 있습니다.

export EDITOR="code --wait"

이 방법 git뿐만 아니라 많은 다른 응용 프로그램이 VS 코드를 편집기로 사용합니다.

이 변경 사항을 영구적으로 유지하려면이 ~/.profile를 예를 들어 추가하십시오 . 더 많은 옵션에 대해서는 이 질문 을 참조하십시오 .


이 방법의 또 다른 장점은 사례마다 다른 편집기를 설정할 수 있다는 것입니다.

  1. 로컬 터미널에서 작업 할 때
  2. SSH 세션을 통해 연결된 경우

이것은 GUI 없이는 작동하지 않기 때문에 특히 VS Code (또는 다른 GUI 편집기)에서 유용합니다.

Linux OS에서 이것을 다음에 넣으십시오 ~/.profile.

# Preferred editor for local and remote sessions
if [[ -n $SSH_CONNECTION ]]; then # SSH mode
  export EDITOR='vim'
else # Local terminal mode
  export EDITOR='code -w'
fi

이 방법으로 로컬 터미널을 사용하면 $SSH_CONNECTION환경 변수가 비어 있으므로 code -w편집기가 사용되지만 SSH를 통해 연결되면 $SSH_CONNECTION환경 변수가 비어 있지 않은 문자열이되어 vim편집기가 사용됩니다. 콘솔 편집기이므로 SSH를 통해 연결되어 있어도 작동합니다.


답변

나는 내 것을 열어서 다음 .gitconfig과 같이 수정했습니다.

[core]
    editor = 'C:/Users/miqid/AppData/Local/Code/app-0.1.0/Code.exe'

그것은 나를 위해 그것을했습니다 (Windows 8에 있습니다).

그러나 Git Bash 콘솔 git commit에서 임의의 것을 시도한 후 다음 메시지가 표시됩니다.

[9168:0504/160114:INFO:renderer_main.cc(212)] Renderer process started

이것이 어떤 결과를 가져올 지 확신 할 수 없습니다.


답변

GitPad 는 현재 텍스트 편집기를 Git의 기본 편집기로 설정합니다.

.txtWindows 10의 파일에 대한 기본 편집기 는 Visual Studio Code이며 GitPad를 실행하면 Git의 기본 편집기가됩니다. 질문에 언급 된 문제가 발생하지 않았습니다 (Git은 VS 코드 창이 닫힐 때까지 기다립니다).

( .exe파일 의 링크가 작동하지 않았으므로 소스를 직접 컴파일해야 할 수도 있습니다.)


답변

좋은 소식! 작성 시점에서이 기능은 이미 0.10.12-iniders 릴리스 에서 구현되었으며 0.10.14- iniders 를 통해 수행되었습니다 . 따라서 곧 출시 될 VS Code 버전 1.0 릴리스에서 사용할 것입니다 .

구현 참조 : 구현 -w /-wait 명령 행 인수