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 |