나만의공간

Git 7회차. 브랜치 이해하기 #7 본문

IT/Git

Git 7회차. 브랜치 이해하기 #7

밥알이 2025. 7. 12. 16:43

🌿 Git 7회차. 브랜치 이해하기 - Git에서 작업을 분리하고 관리하는 똑똑한 방법

브랜치는 Git의 가장 큰 장점 중 하나예요. 새로운 기능을 개발하거나 테스트할 때, 기존 코드에 영향을 주지 않으면서 독립적으로 작업할 수 있게 도와줍니다 😊


🌳 브랜치란 무엇인가요?

브랜치(branch)는 Git에서 독립적인 작업 흐름을 만들기 위한 분기점입니다. 각 브랜치는 하나의 독립된 타임라인처럼 작동하며, 서로 다른 버전의 작업을 동시에 진행할 수 있도록 해줍니다.

예를 들어, main 브랜치에서는 정식 배포 버전을 유지하고, feature/login 브랜치에서는 로그인 기능을 새로 개발할 수 있어요. 나중에 작업이 끝나면 다시 main 브랜치에 합칠 수 있죠.


🤔 왜 브랜치가 필요할까요?

  • ✔️ 코드 실험: 기존 코드에 영향을 주지 않고 새로운 기능을 테스트할 수 있어요
  • ✔️ 버그 수정: 긴급 수정이 필요할 때 별도 브랜치에서 빠르게 작업 가능
  • ✔️ 협업: 여러 개발자가 각자 브랜치를 만들어 동시에 작업할 수 있어요
  • ✔️ 히스토리 관리: 기능 단위로 작업 내역을 구분할 수 있어 추적이 쉬워요

실제로 실무에서는 브랜치를 활용하지 않고서는 협업이 거의 불가능할 정도예요. 브랜치를 잘 사용하는 습관은 실력 있는 개발자로 가는 필수 단계랍니다 💪


📌 브랜치와 관련된 주요 명령어

  • git branch : 브랜치 목록 확인 및 생성
  • git checkout : 브랜치 전환 및 생성 (구버전)
  • git switch : 브랜치 전환 및 생성 (추천)
  • git branch -d : 브랜치 삭제

Git의 버전이 2.23 이상이라면 git switch 명령어를 사용하는 걸 권장드려요 🙌


반응형

🧪 브랜치 실습 - 생성, 이동, 삭제

1. 브랜치 생성하기

git branch feature/login

feature/login이라는 새 브랜치를 생성합니다. 현재 위치는 바뀌지 않아요.

2. 브랜치 이동하기

switch 명령어를 사용해 새 브랜치로 이동해볼게요.

git switch feature/login

구버전 Git이라면 아래처럼 checkout도 사용 가능합니다:

git checkout feature/login

3. 브랜치 목록 확인

git branch

현재 어떤 브랜치들이 있는지 확인할 수 있어요. 현재 위치한 브랜치는 * 표시로 나타납니다.

4. 브랜치 삭제하기

더 이상 필요 없는 브랜치는 삭제할 수 있어요.

git branch -d feature/login

주의: 아직 병합하지 않은 브랜치는 -D 옵션으로 강제 삭제 가능해요.


🔎 브랜치를 활용한 실무 예시

✔️ 팀 프로젝트에서의 브랜치 전략

  • main: 배포 가능한 코드만 유지
  • develop: 개발용 통합 브랜치
  • feature/기능명: 개별 기능 개발용 브랜치
  • hotfix/버그명: 긴급 수정

이런 전략을 사용하면 팀원 간 충돌을 줄이고 효율적인 협업이 가능해져요.

예시 흐름도

main → develop → feature/login
                    ↓
               작업 완료
                    ↓
               merge → develop → main

이처럼 브랜치는 개발 흐름의 중심이라고 해도 과언이 아니랍니다!


📌 요약 정리

  • ✔️ 브랜치는 Git에서 독립된 작업 흐름을 만들기 위한 핵심 도구입니다
  • ✔️ 실험, 협업, 버그 수정 등 다양한 상황에 유용하게 쓰여요
  • ✔️ git branch, git switch, git branch -d 등의 명령어로 자유롭게 제어할 수 있어요

이제부터는 무조건 브랜치를 만들어서 작업하는 습관을 들여보세요! 코드 관리가 훨씬 깔끔해지고, 협업도 쉬워집니다 😊


📎 다음 회차 예고

8회차. 브랜치 병합과 충돌 해결

✔️ git merge 개념 ✔️ fast-forward / non-fast-forward 차이 ✔️ 충돌(conflict) 상황 예시 및 해결 방법까지!


Comments