저는 Vim을 git 편집기로 사용했지만 VS Code를 git 편집기로 사용하시는 분들도 있어서 해당 내용을 정리해보았습니다.
(이번엔 좋은 글이 있어서 정리가 60%가 복사/붙여넣기… 참고한 블로그는 글 하단을 확인해주세요~!)
요약
VS code를 git 편집기로 사용하고 싶으면 아래와 같이 입력합니다.
$ git config --global core.editor "code --wait"
만일 vim을 git 편집기로 사용하고 싶으면 아래와 같이 입력합니다.
$ git config --global core.editor vim
VS Code를 Git 편집기로 설정
다음과 같이 진행하도록 합니다.
- 명령어줄에서
code --help
를 실행하면 도움말이 표시되는지 확인합니다.- 도움말이 표시되지 않는다면 다음의 안내에 따라 조치합니다
- macOS: Command Palette에서 Shell Command: Install ‘Code’ command in path를 선택합니다.
- 윈도우즈: VS Code 를 설치하는 동안 PATH 에 추가하기를 선택합니다.
- 리눅스: .deb 또는 .rpm 패키지를 사용하여 설치합니다.
- 도움말이 표시되지 않는다면 다음의 안내에 따라 조치합니다
- 명령어줄에서
git config --global core.editor "code --wait"
를 실행합니다.- VS Code를 명령어 줄에서 실행할 때,
--wait
옵션을 주면, 명령줄(Command Line)이 새로운 VS Code 인스턴트를 닫을 때까지 대기하도록 할 수 있습니다. - 이 옵션은 VS Code를 Git의 편집기로 사용할 때 유용합니다.
- 이를 적용하면 Git은 실행 중인 VS Code가 닫힐 때까지 대기합니다.
- VS Code를 명령어 줄에서 실행할 때,
이제 git config --global -e
를 실행하면 Git 설정에 아래 그림과 같이 VS Code를 편집기로 사용할 수 있습니다.
VS Code로 git commit 작성
이후로 git commit
명령어를 입력하면 VS Code에서 커밋 메시지를 입력하게 됩니다.
git commit -m "메시지"
가 아니라 git commit
까지만 입력해야 하는 것에 유의합니다.
git commit
아래와 같이 VS code 터미널에 git commit
을 입력합니다.
이제 COMMIT_EDITMSG 창이 아래와 같이 뜹니다. 여기에 커밋 메시지를 입력하면 됩니다.
저는 commit template를 미리 설정해놔서 commit 메시지 작성법을 참고할 수 있도록 해놓았습니다.
commit template 설정하기
VS code의 새 창에서 메시지 입력 후 창을 닫으면 commit 작성이 완료 됩니다.
git commit 작성 중 취소
git commit -m “메시지” 형태로 입력을 해버리면 git reset과 같은 번거로운 과정을 거쳐야 하지만 에디터로 작성하면 git commit이후 한번 더 취소할 기회를 얻을 수 있습니다.
에디터에서 입력 값 없이 종료를 한다거나 VIM에서 :q!로 강제 종료를 한다면 commit 입력이 취소됩니다.
이는 git log를 통해서도 다시 한번 입력이 안된 것을 확인 할 수 있습니다.
Git diff 작업을 VS code에서 하도록 설정
git diff
는 현재 작업 중인 파일의 변경 내용을 보여줍니다. 아래 내용을 Git 환경 설정에 넣어주면 git difftool
명령어로 변경 내용을 VS Code로 확인할 수 있습니다. Git 환경 설정은 git config -e
로 가능합니다.
[diff]
tool = default-difftool
[difftool]
prompt = false
[difftool "default-difftool"]
cmd = code --wait --diff $LOCAL $REMOTE
본 설정을 통해 VS Code에 --diff
옵션을 전달함으로써 2개의 파일의 변경사항을 확인하는 작업의 효율을 높여 줍니다.
요약하면, 아래의 예시에서 VS Code를 편집기로 사용할 수 있습니다.
git commit
은 커밋 메시지를 입력하는데 VS Code를 사용합니다.git add -p
를 통해 변경내용을 대화형으로 추가할 수 있습니다.git difftool <commit>^ <commit>
은 변경사항에 대한 diff 편집기로 VS Code 사용합니다.
Git merge 작업을 VS code에서 하도록 설정
Merge도 VS Code를 기본 툴로 사용할 수 있습니다.
[merge]
tool = vscode
[mergetool "vscode"]
cmd = code --wait $MERGED
작동하지 않는 경우
만약 VS Code Server에 연결을 실패하였다는 메시지가 뜬다면 VS Code Server를 제거한 후 Remote SSH로 다시 접속하여 VS Code Server를 재설치 해줍니다.
참고하면 좋은 글
VS Code를 Git 기본 에디터로 설정하기 | Jay’s Blog (otzslayer.github.io)