Git & GitHub 강좌/3. Git 브랜치

브랜치 병합 (merge)

_Blue_Sky_ 2024. 10. 6. 08:49
728x90
728x90

Git 브랜치와 병합: 상세 가이드

Git 브랜치란 무엇인가요?

Git 브랜치는 프로젝트의 특정 시점을 가리키는 포인터라고 생각하면 쉽습니다. 마치 책의 목차에서 각 장이 다른 내용을 담고 있듯이, Git 브랜치는 프로젝트의 다른 기능이나 버전을 독립적으로 관리할 수 있도록 해줍니다.

  • 왜 브랜치를 사용할까요?
    • 안전한 개발 환경: 메인 코드를 건드리지 않고 새로운 기능을 개발하거나 버그를 수정할 수 있습니다.
    • 협업: 여러 개발자가 동시에 서로 다른 기능을 개발하고, 나중에 하나로 합칠 수 있습니다.
    • 릴리즈 관리: 특정 기능만 포함된 버전을 따로 관리하고, 필요에 따라 릴리즈할 수 있습니다.
728x90

브랜치 생성 및 전환

  • 새로운 브랜치 생성:
    git branch <새로운 브랜치 이름>
    
     
  • 브랜치 전환:
    git checkout <브랜치 이름>
    
     
  • 현재 브랜치 확인:
    git branch
    
     
    (현재 브랜치 앞에 * 표시)

브랜치 병합(Merge)

브랜치 병합은 여러 브랜치에서 작업한 내용을 하나의 브랜치로 통합하는 과정입니다.

  • 병합 명령:
    git merge <병합할 브랜치 이름>
    
     
  • Fast-forward 병합:
    • 두 브랜치가 선형적인 관계일 때 발생합니다.
    • 병합하려는 브랜치가 현재 브랜치의 자손이라면, 현재 브랜치의 포인터를 병합하려는 브랜치의 최신 커밋으로 이동시키는 간단한 작업입니다.
  • 3-way 병합:
    • 두 브랜치가 분기된 후 각각 다른 변경 사항을 가지고 있을 때 발생합니다.
    • Git은 공통 조상과 두 브랜치의 최신 커밋을 비교하여 새로운 커밋을 생성합니다.
    • 충돌(Conflict): 두 브랜치에서 동일한 파일의 같은 부분을 수정했을 경우 발생합니다. 수동으로 충돌을 해결해야 합니다.

충돌 해결

충돌이 발생하면 Git은 충돌이 발생한 부분을 특수한 표시를 통해 알려줍니다.

<<<<<<< HEAD
// 현재 브랜치의 내용
=======
// 병합하려는 브랜치의 내용
>>>>>>> 병합할 브랜치 이름

위와 같이 표시된 부분을 직접 수정하여 충돌을 해결하고, 다시 커밋해야 합니다.

브랜치 관리 전략

  • Main 브랜치: 주로 프로덕션에 배포될 코드를 담는 안정적인 브랜치입니다.
  • Develop 브랜치: 새로운 기능을 개발하고 통합하는 브랜치입니다.
  • Feature 브랜치: 각 기능별로 생성하여 개발하고, Develop 브랜치에 병합합니다.
  • Hotfix 브랜치: 긴급한 버그 수정을 위해 생성하고, Main 브랜치에 병합합니다.

추가적인 내용

  • Rebase: 브랜치의 커밋 이력을 다시 쓰는 작업입니다. Merge와 달리 선형적인 커밋 이력을 유지할 수 있습니다.
  • Cherry-pick: 특정 브랜치의 특정 커밋만 다른 브랜치에 적용하는 작업입니다.
  • Squash: 여러 개의 커밋을 하나의 커밋으로 합치는 작업입니다.

결론

Git 브랜치는 효율적인 프로젝트 관리를 위한 필수적인 도구입니다. 브랜치를 잘 활용하면 개발 생산성을 높이고, 코드 품질을 향상시킬 수 있습니다.

 

728x90
728x90

'Git & GitHub 강좌 > 3. Git 브랜치' 카테고리의 다른 글

Feature Branch, Master Branch 개념  (0) 2024.10.06
Rebase  (0) 2024.10.06
충돌 해결  (0) 2024.10.06
Git 브랜치 생성 및 전환  (0) 2024.10.06