Quick Reference
VS Code Source Control은 일반 Commit에서 Staged Changes를 커밋하고 Commit All에서는 unstaged 변경도 포함하며, Sync는 pull·push를 함께 수행하므로 충돌을 해결한 파일을 다시 stage해야 합니다.
| 하려는 일 | VS Code에서 할 일 | Git 상태 |
|---|---|---|
| 저장소 상태 열기 | Source Control (Command/Ctrl+Shift+G) | 열린 폴더의 Git 저장소를 봅니다. |
| 변경 검토 | Changes에서 파일을 열어 diff 확인 | 아직 stage하지 않은 작업 트리 변경입니다. |
| 이번 커밋에 포함 | + 또는 diff의 선택 범위를 stage | 변경이 Staged Changes와 index로 이동합니다. |
| 로컬 커밋 | 메시지 입력 후 Commit | 현재 브랜치에만 새 커밋이 생깁니다. |
| 원격과 동기화 | Sync Changes 또는 개별 fetch/pull/push | sync는 원격 변경을 받고 내 커밋을 보내는 흐름입니다. |
| 충돌 해결 | 충돌 파일 또는 Merge Editor 열기 | 해결한 파일을 stage해야 통합을 완료할 수 있습니다. |
편집 화면과 Git 상태
VS Code의 Source Control은 별도 버전 관리 시스템이 아니라 컴퓨터에 설치된 Git을 화면으로 조작합니다. 같은 저장소에서 터미널의 git status와 VS Code의 Changes 목록은 서로 다른 결과가 아니라 같은 작업 트리 상태를 보여야 합니다.
git --version
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
git status --shortChanges에 있는 파일은 다음 커밋에 자동으로 들어가지 않습니다. Staged Changes로 옮긴 항목만 커밋 대상으로 삼는다는 점을 지키면, 편집 중인 다른 작업을 커밋에 섞지 않을 수 있습니다. VS Code는 파일 전체뿐 아니라 diff에서 선택한 줄도 stage할 수 있으므로, 커밋 직전에는 stage된 diff를 한 번 더 읽습니다.
sync와 충돌을 다루기
원격 브랜치가 연결된 경우 상태 표시줄과 Source Control은 들어오는 커밋과 나가는 커밋을 보여 줍니다. Sync Changes는 pull과 push를 묶은 편의 동작입니다. 충돌 가능성을 먼저 살피거나 한 방향만 실행해야 할 때는 ... 메뉴에서 fetch, pull, push를 개별적으로 사용합니다.
충돌이 나면 Merge Editor에서 현재 브랜치 변경과 들어온 변경을 비교해 결과를 만듭니다. Accept Current나 Accept Incoming을 누른 뒤에도 코드가 실제로 맞는지 읽어야 합니다. 저장하고 충돌 표시를 모두 제거한 뒤 해당 파일을 stage해야 Git이 해결된 것으로 인식합니다.
충돌 파일 열기
-> 현재 변경 / 들어온 변경 / 결과 비교
-> 필요한 코드를 결과에 남기고 저장
-> Source Control에서 stage
-> merge 또는 rebase 계속 진행주의할 점
Sync Changes가 "안전한 새로고침"을 뜻하지는 않습니다. pull은 현재 브랜치에 원격 변경을 통합하므로 충돌이나 예상 밖의 merge가 생길 수 있습니다. 특히 rebase 진행 중에는 Source Control의 안내만 따라가기보다 상태 표시와 git status를 함께 확인해 다음 행동을 결정하세요.
참고 링크
3 sources