⚡ Git 협업 시 자주 발생하는 충돌 상황 & 해결 방법
1. 📝 같은 파일, 같은 줄 수정 충돌
상황:
- A와 B가 같은 파일의 같은 부분을 각각 수정하고 커밋 → push/pull 시 충돌 발생
에러 메시지 예시:
CONFLICT (content): Merge conflict in src/app.js
해결 방법:
- 충돌난 파일을 열면 Git이 자동으로 conflict 마커를 넣음
<<<<<<< HEAD console.log("A 버전 코드"); ======= console.log("B 버전 코드"); >>>>>>> feature/branch-b
- 원하는 코드로 수정 후 저장
console.log("최종 합쳐진 코드");
- 수정 완료 후 커밋
git add src/app.js git commit
2. 📂 같은 파일 삭제 vs 수정 충돌
상황:
- A는 user.js 파일을 삭제, B는 같은 파일을 수정 → 병합 시 충돌
해결 방법:
- 정말 삭제할지(git rm 유지) 아니면 수정한 버전을 살릴지 선택해야 함
# 수정본 살리기 → 파일 복구 후 add
git restore user.js
git add user.js
# 삭제 유지
git rm user.js
git commit
3. 🌳 브랜치 머지 시 충돌
상황:
- feature/login 브랜치 작업 후 → main에 병합할 때 main이 이미 변경되어 충돌 발생
해결 방법:
- main 최신화 후 내 브랜치에 반영
git checkout main git pull origin main git checkout feature/login git merge main # 또는 git rebase main
- 충돌 해결 후 add/commit
4. 📦 Pull 할 때 충돌
상황:
- 내가 로컬에서 커밋한 상태에서 git pull 하면, 원격과 충돌 발생
해결 방법:
- Git이 자동으로 merge 시도 → 충돌 발생 시 파일 열고 수정
- 해결 후
git add . git commit git push
5. 🔀 rebase 중 충돌
상황:
- rebase 중간에 충돌 발생 (커밋 히스토리를 깔끔하게 만들려고 자주 씀)
해결 방법:
# 충돌 파일 수정 → add
git add <파일>
# rebase 계속 진행
git rebase --continue
# 만약 rebase 포기
git rebase --abort
✅ 충돌 해결 3단계 공식
- 충돌 확인 → git status
(어떤 파일에 충돌났는지 확인) - 수동 수정 → 파일 열고 conflict 마커(<<<<<<<, =======, >>>>>>>) 제거
- 해결 후 기록 → git add <파일> → git commit
💡 충돌 예방 TIP
- 항상 작업 시작 전 git pull origin main 해서 최신 코드 가져오기
- 작은 단위로 자주 commit & push
- 팀 내에서 코딩 컨벤션 맞춰두면 불필요한 충돌 줄어듦 (예: 줄바꿈, 들여쓰기 등)
- 가능하면 merge 대신 rebase를 활용해 이력 깔끔하게 유지
'Develop > Git' 카테고리의 다른 글
실무 Git 워크플로우 (CLI 중심) (0) | 2025.08.25 |
---|---|
Git CLI 필수 명령어 정리 (0) | 2025.08.25 |
Git .gitignore 추가해도 stage에 파일이 보이는 경우 (0) | 2024.05.28 |
깃헙을 더 잘쓰는 세가지 팁 (0) | 2021.03.16 |