Git 협업 실전 가이드: 브랜치, 충돌 해결, Pull Request 완전 정복

앞선 글에서는 Git과 GitHub의 기초적인 사용법을 다뤘습니다. 이번에는 협업에 필수적인 브랜치(branch), 충돌(conflict) 해결, 그리고 GitHub Pull Request(PR) 사용법을 실전 예제와 함께 알아봅니다.


✅ 브랜치(branch)란?

브랜치는 코드의 독립적인 작업 공간입니다.
main 브랜치를 그대로 건드리지 않고, 새 브랜치를 만들어 기능을 개발한 뒤, 나중에 합치는 방식으로 안전하게 작업할 수 있어요.


📌 브랜치 주요 용도

이름용도
main배포용 코드, 안정된 버전
feature/기능명새로운 기능 개발
fix/버그명버그 수정
hotfix/긴급명긴급 패치
dev/test실험적인 개발 공간

🛠️ 브랜치 실습

# 브랜치 생성
git checkout -b feature/login

# 브랜치 목록 보기
git branch

# 작업 후 커밋
git add .
git commit -m "로그인 기능 구현"

# main 브랜치로 돌아가기
git checkout main

# feature/login 브랜치 병합
git merge feature/login

# 병합 후 브랜치 삭제
git branch -d feature/login

⚠️ 충돌(conflict)이란?

두 브랜치에서 같은 파일의 같은 줄을 서로 다르게 수정하면 Git은 어떤 내용을 살릴지 알 수 없어서 **충돌(conflict)**이 발생합니다.


🔥 충돌 예시 상황

  1. main에서 README.md 수정 → 커밋
  2. feature 브랜치에서도 같은 줄을 수정 → 커밋
  3. main으로 돌아와 feature를 병합
git merge feature

⚠️ 충돌 메시지

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

🧹 충돌 해결 방법

  1. 파일 열기 (README.md)
  2. 아래와 같은 표시가 나타남:
<<<<<<< HEAD
main에서 수정한 내용
=======
feature 브랜치에서 수정한 내용
>>>>>>> feature
  1. 둘 중 하나를 선택하거나, 적절히 병합
  2. 저장 후 커밋
git add README.md
git commit -m "충돌 해결"

🤝 협업 시 Pull Request(PR) 사용하는 방법

GitHub에서는 여러 개발자가 협업할 때 Pull Request (PR) 를 통해 코드 변경 사항을 리뷰하고 병합합니다.


📋 PR 흐름

  1. GitHub에서 main 외의 브랜치를 만들고 푸시
  2. GitHub 웹사이트에서 “New Pull Request” 클릭
  3. 리뷰 요청 → 리뷰 후 승인 → 병합

🛠️ 실습 예시

# 새 브랜치에서 기능 개발
git checkout -b feature/profile
git add .
git commit -m "프로필 페이지 추가"
git push origin feature/profile
  1. GitHub 접속 → feature/profile 브랜치 선택
  2. Compare & pull request 버튼 클릭
  3. 변경 사항 설명 작성
  4. 팀원이 리뷰하고 승인 후 Merge

✅ PR 병합 방식 (선택 가능)

방식설명
Merge일반 병합, 커밋 히스토리 보존
Squash and merge커밋들을 하나로 압축해서 병합
Rebase and mergemain 브랜치에 깔끔하게 붙이기 (커밋 정리용)

📌 요약

개념핵심 내용
브랜치기능별로 독립된 작업 공간
충돌같은 파일의 같은 줄을 다르게 수정할 때 발생
PR코드 리뷰 → 승인 → 병합하는 GitHub 협업 방식

✍️ 마무리

브랜치를 나눠서 작업하고, 충돌을 해결하고, Pull Request로 협업하는 것은 현대 소프트웨어 개발에서 기본이자 필수입니다. 익숙해지면 팀과의 협업 속도와 코드 품질 모두 올라갑니다.

다음 글에서는 GitHub Actions, CI/CD, 코드 리뷰 팁, 그리고 Git Flow 전략에 대해 다뤄보겠습니다.


답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다