반응형
Git 충돌 해결 완벽 가이드
요약: Git merge conflict가 발생했을 때 당황하지 않고 해결하는 방법을 단계별로 정리했습니다.
충돌이 발생하는 이유
두 브랜치에서 같은 파일의 같은 부분을 수정했을 때 Git이 자동으로 병합하지 못하면 충돌이 발생합니다.
1. 충돌 확인
# 충돌 상태 확인
git status
# 출력 예시
Unmerged paths:
(use "git add <file>..." to mark resolution)
both modified: src/App.js
2. 충돌 파일 열기
충돌이 발생한 파일을 열면 이런 형태로 표시됩니다:
<<<<<<< HEAD
// 현재 브랜치의 코드
const title = "Welcome";
=======
// 병합하려는 브랜치의 코드
const title = "Hello World";
>>>>>>> feature-branch
3. 충돌 해결
마커를 제거하고 최종 코드를 선택합니다:
// 방법 1: 하나만 선택
const title = "Hello World";
// 방법 2: 두 코드 합치기
const title = "Welcome";
const subtitle = "Hello World";
4. 해결 완료 표시
# 해결된 파일 스테이징
git add src/App.js
# 모든 충돌 해결 후 커밋
git commit -m "Merge feature-branch: resolve conflicts"
VS Code에서 쉽게 해결하기
VS Code는 충돌을 시각적으로 보여주고 클릭 한 번으로 해결할 수 있습니다:
- Accept Current Change: 현재 브랜치 코드 선택
- Accept Incoming Change: 병합하려는 브랜치 코드 선택
- Accept Both Changes: 둘 다 유지
- Compare Changes: 차이점 비교
충돌 예방하기
- 자주 pull 받아서 최신 상태 유지
- 작은 단위로 자주 커밋하고 머지
- 같은 파일을 여러 명이 동시에 수정하지 않기
- 기능 브랜치는 짧게 유지 (1-2일)
머지 취소하기
충돌이 너무 복잡하면 머지를 취소하고 다시 시작할 수 있습니다:
# 머지 취소 (충돌 해결 전)
git merge --abort
# 머지 완료 후 되돌리기
git reset --hard HEAD~1
Rebase vs Merge
- Merge: 히스토리 보존, 머지 커밋 생성
- Rebase: 깔끔한 히스토리, 충돌 해결이 더 까다로울 수 있음
# rebase 중 충돌 시
git rebase --continue # 해결 후 계속
git rebase --abort # 취소
참고 자료
작성: 밤비스
반응형
'github' 카테고리의 다른 글
| GitHub Copilot 2026 완벽 활용법 - 보일러플레이트 제로 시대 (0) | 2026.02.17 |
|---|---|
| GitHub 개발자 1억 8천만 시대 - 인도가 미국을 넘어서는 2026 (0) | 2026.02.16 |
| GitHub Actions AI 자동화 2026 - LLM으로 CI/CD 파이프라인 최적화 (0) | 2026.02.15 |
| GitHub Actions CI/CD 완벽 세팅 가이드 - 자동 빌드부터 배포까지 (0) | 2026.01.31 |
| [Github] Page 배포하기 (0) | 2023.01.02 |