Git Across Compare
두 git 브랜치를 좌우로 나란히 비교하고, 파일 단위로 가져오기·삭제·병합하는 VSCode 확장입니다.
왼쪽 액티비티 바에 "브랜치 비교" 아이콘과 뷰를 추가합니다.
사용법
- 뷰 제목줄의 버튼으로 기준 브랜치(병합을 받을 쪽)와 비교 브랜치(병합해 올 쪽)를 고릅니다.
- 비교 브랜치에만 있는 변경 파일이 나열됩니다. 파일을 클릭하면 diff가 열리고, "변경 파일 전체 보기" 버튼을 누르면 모든 파일을 한 화면에서 볼 수 있습니다.
- 비교 기준은
git diff 기준...비교(merge-base 기준)입니다. 즉 "병합하면 들어올 변경"만 보여주고, 기준 브랜치에만 있는 변경은 나오지 않습니다.
- "병합" 버튼을 누르면 기준 브랜치로 체크아웃한 뒤(필요한 경우) 비교 브랜치를 병합합니다.
- 커밋하지 않은 변경이 있으면 병합하지 않습니다.
- 충돌이 나면 뷰 맨 위에 "병합 충돌" 그룹이 나타나고, 파일을 클릭하면 VSCode 3-way 병합 편집기가 열립니다. 해결한 뒤 소스 제어 패널에서 스테이징하고 커밋하면 병합이 끝납니다.
폴더 비교
브랜치 선택 패널의 폴더 비교 열기를 누르면 편집기 영역에 두 브랜치의 파일 트리가 좌우로 나란히 열립니다.
- 같은 경로의 파일이 같은 줄에 정렬됩니다. 빨강은 내용이 다른 파일, 보라는 한쪽에만 있는 파일, 회색은 같은 파일입니다. 한쪽에만 있는 항목의 반대편은 빗금으로 비워 둡니다.
- 상단의 전체 / 다른 것만 / 같은 것 / 한쪽에만 필터와 경로 검색으로 걸러 볼 수 있습니다.
- 파일을 더블클릭하면 좌우 diff가 열립니다. 방향키로 이동하고, Enter로 열고, ←/→로 폴더를 접고 펼칠 수 있습니다.
- 우클릭 메뉴로 체크아웃된 쪽의 작업 트리를 반대편에 맞출 수 있습니다. 브랜치 전체를 병합하지 않고 필요한 파일만 고르는 방식입니다.
- 가져오기: 반대편 버전으로 덮어씁니다(
git checkout <브랜치> -- <경로>).
- 삭제: 반대편에 없는 파일을 지웁니다(
git rm).
- 동기화(폴더): 가져오기와 삭제를 한 번에 해서, 폴더를 반대편과 똑같이 맞춥니다.
- 받는 쪽이 체크아웃된 브랜치일 때만 쓸 수 있습니다.
- 바뀐 파일은 스테이징된 상태가 되고, 목록에 "가져옴"·"삭제함"으로 표시됩니다. 소스 제어에서 확인한 뒤 커밋하세요.
- 커밋하지 않은 수정이 있는 파일을 덮어쓰거나 지우게 되면 확인 창에서 경고합니다. 이미 반대편과 같아진 파일은 다시 건드리지 않습니다.
개발
npm install
npm run compile # 또는 npm run watch
이 폴더를 VSCode로 열고 F5("확장 실행")를 누르면 확장 개발 호스트 창이 뜹니다.
배포(폐쇄망)
npm run package # git-across-compare-0.0.1.vsix 생성
code --install-extension git-across-compare-0.0.1.vsix
| |