Git branch 를 생성하면 main 에서 작업하는 것이 아니라 새로운 브랜치를 만들어
코드 변경 사항을 안전하게 관리하고 협업을 효율적으로 진행할 수 있다 해서 생성하여 작업했다.
00. Git bracnch 란?
Git은 분산 버전 관리 시스템으로 협업시 개발자가 동시에 작업할 수 있도록 branch 기능을 제공한다.
즉, Git branch란 독립적인 작업을 위한 개별적 공간으로 새로운 기능 개발 및 버그 수정시 별도의 브랜치를 만들어 작업할 수 있다.
브랜치를 만들어 사용할 경우 main 브랜치에 영향을 주지 않고 변경사항을 실험 및 개발을 진행 할 수 있다.
01. Git Branch 생성 방법
1) 브랜치 생성
git branch 브랜치이름
해당 명령어를 실행하여 로컬 저장소에 나만의 branch를 생성한다.
2) 브랜치 경로 확인
git branch
현재 저장소에 존재하는 브랜치 목록이 표시되며 내가 작업 중인 브랜치 위치는 *main 이런 식으로 표시된다.
3) 브랜치 이동
branch checkout 브랜치이름
checkout 을 통해 내가 원하는 브랜치로 이동할 수 있다.
추가) 생성과 이동 동시에 하는 방법
git switch -c 브랜치이름
해당 명령어를 수행하면 브랜치 생성과 동시에 이동이 가능하다.
02. 브랜치 활용
1) 브랜치에서 작업한 사항들을 선택하여 커밋
커밋하지 않을 경우 병합 시 변경 사항이 포함되지 않으므로 필수로 해야 한다.
2) main 브랜치 최신 상태 업데이트
# main 브랜치 이동
git checkout main
# 최신 변경 사항 가져오기
git pull origin main
main 브랜치가 최신 상태가 아닐 경우 원격 저장소의 main과 내 로컬 main이 다르면 충돌 가능성이 생긴다.
3) 작업 브랜치에서 main 변경사항 반영
# 다시 작업 브랜치로 이동
git checkout 브랜치 이름
# main 브랜치 최신 상태 반영
git merge main
내 브랜치가 오래된 상태일 수 있기 때문에 main 과 병합 시 예상치 못한 충돌 방지를 위해 시행한다.
4) main 브랜치로 병합
# main 브랜치로 이동
git checkout main
# 작업 브랜치 병합
git merge 브랜치이름
내가 작업한 브랜치 내용 main 에 반영한다.
5) 변경 사항 원격 저장소에 반영
git push origin main
push를 해야 변경 사항이 원격 저장소에 저장된다.
6) 브랜치 삭제
git branch -d 브랜치이름
병합을 완료한 후, 필요 없는 브랜치는 삭제해도 무방하다.
03. 브랜치 전략
브랜치를 효과적으로 관리하기 위해 여러 전략이 사용되는데 대표적으로 Git Flow 와 GitHub Flow가 있다.
Git Flow는 대규모 프로젝트에 적합하나 브랜치 수 증가와 복잡해질 수 있다는 단점이 있다.
GitHub Flow는 빠르게 배포할 때 유리하나 안전성 관련한 문제가 있어 자동 테스트 및 코드 리뷰가 필수다.
1) Git Flow
(1) main : 안정적인 코드만 존재하는 브랜치 ➡️ 자동 배포 / QA 진행
(2) develop : 개발 중인 기능이 통합되는 브랜치
(3) feature/* : 새로운 기능을 개발하는 브랜치
(4) release/* : 배포를 위한 준비 브랜치
(5) hotfix/* : 긴급한 버그 수정 브랜치
1-1) Git Flow 작업 흐름
(1) feature/새로운기능 브랜치 만들고 기능 개발
(2) 개발 완료 시 develop 브랜치에 병합
(3) 배포 준비 완료 시 release 브랜치 만들어 테스트
(4) 검증 완료 시 maIn 병합 후 배포
(5) 버그 발생 시 hotfix/* 블랜치에서 수정 후 main 과 develop에 반영
2) GitHub Flow : 빠른 배포가 중요한 경우 추천
(1) main 브랜치에서 새로운 기능 개발을 위해 브랜치를 생성하고 작업
(2) Pull Request(PR)를 통해 코드 리뷰 후 main에 병합
(3) main 브랜치는 항상 배포 가능한 상태 유지
2-1) GitHub Flow 작업 흐름
(1) feature/* 브랜치 만들고 개발
(2) 완료되면 PR 생성하여 코드 리뷰 요렁
(3) 리뷰 후 문제 없으면 main에 병합
(4) CI/CD를 이용하여 자동 배포 진행
'Git' 카테고리의 다른 글
[Git] 작업 중 commit 안하고 main pull 하는 방법 (0) | 2025.02.27 |
---|---|
[Git] git stash 사용 방법 (0) | 2025.02.27 |