일단 하고 보는 사람

나중보단 지금에 집중하되, 지금보단 나중에 완벽해지자💪🏻

우당탕탕 git & gitHub

[gitHub merge] 당황❌ VSCode UI단에서 "안전 병합"하는 방법

JanginTech 2025. 8. 31. 13:36

폭풍 코딩 후 Github Desktop에서 Pull을 눌렀다가

리모트에 변경사항 있다는 팝업이 떠서 아무 생각 없이 OK를 누른 적이 있다🙀

덕분에 내 코딩이 통째로 덮였다

  • 커밋x
  • 스테이징 x
  • 되돌릴 수 있는 것도 x

결국 며칠치 작업이 한순간에 증발됐다

그때부터 난 Github Desktop 안 쓰기 시작했다

 

 

🔁 이번에도 충돌. 이번엔 VSCode로 단판 지을 거다

그리고 금요일 퇴근 10분 전 똑같은 일이 벌어졌다

  • 내 로컬에서 코드 수정함
  • Push 하려 했더니 Git에서 친절히 거절
Updates were rejected because the remote...

대충 이런 에러였던 거로 기억한다 업무용 노트북이랑 개인용 노트북이 달라서 에러문구나 코드 완전복붙이 어렵다 ㅜㅜ

 

리모트에 바뀐 게 있으니까 먼저 Pull 하고 머지하라는 얘기다

 

 

✅ 이번엔 VSCode UI로 병합 도전

UI에서 머지해보겠다

1. 내 작업 커밋

내 작업부터 일단 올려놓는다

SOURCE CONTROL → Stage → commit

2. Pull

당연히 에러가 발생할 거다

너무 당연한 거니까 당황하지 않고 바로 3단계로 진입

 

3. 3분할 병합 UI: Incoming Change / Current Change / Result

VSCode는 충돌 파일을 열면 자동으로 병합 UI를 띄워준다

캡처할 수가 없어서 말로 설명,,ㅠㅠ

 

3-1. 머지 화면 구성

영역 의미
Incoming Change 리모트에 있는 최신 코드
Current Change 내 로컬에 있는 코드(내가 수정한 거!)
Result 병합 결과(여기서 최종 결정)

 

내가 수정한 부분 vs 팀원이 수정한 부분을 한줄한줄 눈으로 비교하면서

"어떤 걸 살릴지" 직접 선택하거나, 상황에 따라 수동으로 재작성이 가능하다

 

4. 병합 방식 선택

VSCode는 병합 도우미 버튼을 제공한다

영역 의미
Accept Incoming Change 리모트 코드 살림
Accept Current Change  내 로컬 코드 살림
Accept Both Change 둘 다 붙여서 병합
Compare Changes 나란히 비교

 

⚠ 버튼 클릭 → Result단에서 최종 수정본을 꼭 직접 확인해야 한다!!

불필요한 충돌 마커(<<<<<<<, =======, >>>>>>> 등) 도 직접 지워줘야 하기 때문이다

 

5. 저장 & Commit and Push

Result 내용을 저장하고 다시 SOURCE CONTROL 탭에서 커밋/푸시를 진행한다

 

 


🧠 교훈

Github Desktop은 깔끔하지만 병합 UI가 없어서 실수하기 너무 좋다

반면 VSCode는 직접 병합해야 하지만 시각적으로 비교할 수 있어 실수할 확률이 줄어든다

(음.. 소신발언하자면.. 사실 난 VSCode도 그닥 좋은 툴은 아니라고 생각한다만 이걸 써야 해서 쓰는 것뿐이다)

 

만일 환경이나 집단에 구애받지 않고 맘껏(?) 코딩할 수 있는 사람들은 VSCode 굳이 안 써도 될 것 같다..ㅎ

 

앞으로 내 깃 워크플로우는 이렇게 갈 거다:

1. fetch
2. commit
3. pull -> 병합은 무조건 vscode에서 해결
4. 처리 후 push

 

이젠 충돌 나도 전보단 덜 겁먹고(?) 해결할 수 있게 됐다

내 코드를 지키고 팀원의 코드를 지킬 수 있는 방법을

비록 내 코드를 날려먹고 나서야 배웠지만..

 

그래도 배운 게 어디냐..!