[2. 공부]/[2.1 코딩]

⚠️ Git 충돌 해결 방법과 예시

주식경이 2025. 2. 24. 20:33
반응형

코딩 프로젝트에서 **Git 충돌(conflict)**은 협업 과정에서 자주 발생하는 문제입니다. 충돌은 두 개 이상의 브랜치에서 동일한 파일의 같은 부분을 변경할 때 발생하며, Git이 자동으로 병합할 수 없을 때 개발자가 수동으로 해결해야 합니다. 충돌을 두려워할 필요는 없습니다! 이 글에서는 Git 충돌의 원인, 해결 방법, 실전 예시, 그리고 충돌 방지를 위한 팁을 알려드립니다. 🚀


🧩 1. Git 충돌이 발생하는 원인

충돌은 주로 동일 파일의 동일 코드 블록 변경 시 발생합니다.

📌 주요 충돌 원인

✅ 두 명 이상이 같은 파일의 같은 줄을 수정했을 때.
✅ 브랜치 병합(Merge) 또는 리베이스(Rebase) 중에 충돌 발생.
✅ 삭제된 파일을 다른 브랜치에서 수정했을 때.
✅ 파일 이름 변경 시 다른 브랜치에서 동일 파일을 수정했을 때.


🛠️ 2. Git 충돌 발생 예시

📝 충돌 시나리오

1️⃣ **메인 브랜치(main)**에서 파일 생성:

echo "Hello World" > example.txt
git add example.txt
git commit -m "Add example.txt"

2️⃣ feature 브랜치에서 파일 수정:

git checkout -b feature
echo "Hello from feature branch" > example.txt
git commit -am "Update text in feature branch"

3️⃣ 메인 브랜치에서 동일 파일 수정:

git checkout main
echo "Hello from main branch" > example.txt
git commit -am "Update text in main branch"

4️⃣ feature 브랜치를 메인에 병합:

git merge feature

충돌 발생 메시지:

Auto-merging example.txt
CONFLICT (content): Merge conflict in example.txt
Automatic merge failed; fix conflicts and then commit the result.

📝 3. Git 충돌 해결 방법 (단계별 가이드)

🖥️ Step 1: 충돌 파일 확인

git status  # 충돌 발생 파일 확인

✅ 출력 예시:

both modified: example.txt

🖥️ Step 2: 충돌 내용 확인 및 수정

<<<<<<< HEAD
Hello from main branch
=======
Hello from feature branch
>>>>>>> feature

수정 방법: 충돌 구문(<<<<<<<, =======, >>>>>>>)을 제거하고 원하는 코드만 남깁니다.

Hello from both branches

🖥️ Step 3: 충돌 해결 후 커밋

git add example.txt  # 변경 사항 추가
git commit -m "Resolve merge conflict in example.txt"

TIP: 충돌 해결 후 커밋 메시지는 변경 내용을 명확히 작성하세요.


🔄 4. Rebase 중 충돌 해결 방법

Rebase 중 충돌 발생 시 아래 명령어로 해결하세요.

📝 Rebase 충돌 해결 과정

git rebase feature  # 충돌 발생 시 멈춤
git status          # 충돌 파일 확인

✅ 파일 수정 후:

git add example.txt  # 수정 내용 추가
git rebase --continue  # Rebase 계속 진행

✅ 충돌 해결이 어렵다면:

git rebase --abort  # Rebase 중지 및 이전 상태 복구

🧭 5. 충돌 방지를 위한 팁

충돌을 예방하는 방법

✔️ 작업 전 최신 브랜치 가져오기:

git fetch origin
git pull origin main  # 메인 브랜치 최신화

✔️ 자주 커밋하고 푸시하기: 작은 변경 사항을 자주 업로드하면 충돌 가능성이 줄어듭니다.
✔️ 작업 전 Pull로 코드 동기화: 팀 프로젝트에서는 필수입니다.
✔️ 브랜치명과 작업 내용 명확히 작성: 협업 시 혼동 방지.
✔️ 작업 단위 분리: 너무 큰 변경 사항을 한 번에 병합하지 마세요.


🚀 6. 충돌 해결 시 유용한 도구

🖥️ GUI 기반 도구 추천

도구특징장점

VS Code 내장 Git 충돌 해결 기능 제공 시각적 충돌 해결 가능, 설치 쉬움
GitKraken 직관적 인터페이스 브랜치 시각화 및 충돌 해결 쉬움
Sourcetree 초보자 친화적 무료 사용 가능, 충돌 시 경고 표시

TIP: GUI 도구 사용 시 실시간 충돌 해결이 가능해 초보자에게 추천합니다.


📝 결론

Git 충돌은 자연스러운 개발 과정의 일부입니다. 충돌 발생 시 당황하지 말고 단계별로 해결하세요. 충돌을 예방하려면 자주 Pull하고, 명확한 커밋 메시지를 작성하며, 팀원과 소통하세요. Git 충돌 해결 능력은 협업 시 큰 경쟁력이 됩니다! 💪💻

👉 다음 글에서는 "효율적인 Git 협업 전략과 실전 팁"을 다룹니다. 많은 기대 부탁드립니다!


🏷️ 추천 키워드

  1. Git 충돌 해결 방법
  2. Git 병합 충돌
  3. Rebase 충돌 처리
  4. Git 협업 팁
  5. 코드 충돌 예방
  6. Git conflict 해결
  7. 브랜치 충돌 관리
  8. GUI 도구로 충돌 해결
  9. Git merge 충돌 예시
  10. Git 충돌 발생 원인

지금 바로 실습하며 Git 충돌 해결 능력을 키워보세요! 🚀

반응형