핵심 정리
# VS Code Source Control에서 자주 쓰는 흐름
- 파일 변경 후 Source Control 뷰(Ctrl+Shift+G)에서 diff 확인
- + 버튼으로 파일 stage, 메시지 입력 후 커밋
- 상태 표시줄의 sync 버튼으로 push/pull 처리
- 충돌 발생 시 내장 Merge Editor로 3-way 비교 후 해결기본 흐름
어떤 VS Code Git 흐름을 먼저 떠올리면 되나
| 상황 | 먼저 떠올릴 선택 |
|---|---|
| 편집 중 바로 변경 보기 | Source Control 패널 |
| 충돌 3-way 비교 | Merge Editor |
| 간단한 commit/push | VS Code 내장 Git |
| 깊은 히스토리/복잡한 복구 | CLI 또는 전용 도구 병행 |
에디터 내장 Git의 핵심 강점 — 컨텍스트 전환 없이 편집과 커밋을 이어간다
별도 터미널이나 Git 클라이언트를 열지 않아도, 코드를 수정하고 나서 같은 화면에서 diff를 확인하고 커밋까지 완료할 수 있다. 특히 파일을 열어 편집하는 도중에 인라인으로 변경 내역 표시(gutter indicator)가 실시간으로 나타나기 때문에, 어디를 바꿨는지 파악하기 위해 diff를 별도로 열 필요가 없다. 이 컨텍스트 전환 감소는 소규모 수정이 잦은 작업 흐름에서 실질적인 시간 절약이 된다.
VS Code Merge Editor가 충돌 해결에 유용한 이유 — 3-way 비교가 선택 오류를 줄인다
Git 충돌이 발생하면 VS Code는 "Merge Editor로 열기" 옵션을 제공한다. Merge Editor는 Incoming(병합 대상), Current(내 브랜치), 공통 조상의 세 영역을 나란히 보여 주는 3-way 뷰다. 텍스트 파일에서 충돌 마커를 직접 편집하는 방식보다 "어느 쪽 변경을 선택하거나 두 가지를 모두 포함할지" 시각적으로 판단하기 쉽다. 특히 각 hunk별로 Accept Current, Accept Incoming, Accept Both 버튼이 있어 실수로 마커를 지우는 오류를 줄여 준다.
VS Code Source Control의 한계 — 깊은 히스토리 관리는 전용 도구가 낫다
VS Code의 Source Control 뷰는 기본 Git 작업(stage, commit, push, pull, branch 전환)을 충분히 처리하지만, 브랜치 그래프 시각화, interactive rebase, cherry-pick, 복잡한 stash 관리 같은 고급 작업은 기본 화면에서 접근하기 어렵다. GitLens 같은 확장을 설치하면 기능을 보완할 수 있지만, 복잡한 히스토리를 자주 다룬다면 Sourcetree나 GitKraken 같은 전용 클라이언트와 병행하는 것이 현실적이다. VS Code Source Control은 "편집 중심 작업에서 Git을 끊김 없이 사용"하는 데 최적화된 도구다.
선택 기준
| 상황 | 적합한 선택 |
|---|---|
| 편집과 Git 작업을 한 화면에서 처리 | VS Code Source Control 사용 |
| 충돌을 3-way 비교로 시각적으로 해결 | VS Code Merge Editor 사용 |
| 브랜치 그래프·interactive rebase 등 고급 작업 | 전용 GUI 클라이언트 병행 |
| VS Code를 이미 주 에디터로 쓰는 개발자 | 별도 클라이언트 없이 시작 가능 |
| Git 기능을 더 확장하고 싶을 때 | GitLens 확장 설치 고려 |
주의할 점
VS Code의 Git 기능은 편리하지만, 결국 Git 자체를 대신하는 별도 시스템은 아닙니다.
버튼 뒤에서 실행되는 Git 명령의 의미를 모르면 예상치 못한 결과가 생길 수 있습니다.
이상한 동작이 보이면 에디터 화면만 보기보다 터미널에서 git status와 git log로
실제 Git 상태를 직접 확인하는 습관을 함께 유지하세요.
참고 링크
1 sources