[Git] Branch
Branch
는 독립적으로 작업을 진행하기 위해 만들어지는 공간입니다.
각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있습니다.
기본적으로 초기 Repository 는 main
or master
branch 로 시작됩니다.
Git 명령어
Branch 생성 :
name
이라는 branch를 생성합니다. (해당 브랜치로 이동하지는 않습니다.)$ git branch <name>
다른 Branch로 이동 :
name
이라는 branch로 이동합니다.$ git checkout <name>
Branch 생성 + 이동 :
name
이라는 branch를 생성하고 이동합니다.$ git checkout -b <name>
로컬에 생성한 branch 를 remote repository (
origin
)에 push :name
이라는 branch를 로컬에 생성한 상태에서origin
에 push합니다.$ git push --set-upstream origin <name>
기본적으로 git push 명령어를 입력하지 않으면 생성한 Branch는 로컬에만 존재하는 상태가 됩니다.
위의 방법으로 한번 push 한 뒤로는 remote repository 에도 존재하게 되며 이후에 push 할 때
--set-upstream
을 붙여주지 않아도 됩니다.remote repository에 저장된 branch 삭제 :
name
이라는 branch를 remote repository 에서 삭제합니다.$ git push origin --delete <name>
name
branch >main
branch 병합(merge)$ git checkout main $ git merge <name> $ git branch -d <name> $ git push origin <name>
병합에서 --no-ff 옵션
- 병합하는 하위 branch의 commit 이력들을 모두 합쳐서 새로운 commit 객체를 만들어 상위 branch로 병합하는 옵션입니다.
Develop/Release Flow with Branches
Gitflow Workflow 에서 여러개의 branch를 이용해서 develop/release 를 진행하는 Flow 입니다.
Git Branch의 종류
Main Branches : master, develop
Master Branch : 배포 (Release) 이력을 관리하는 뿌리 (Trunk) Branch 입니다.
배포된 버전들 중 최종 버전이 관리됩니다. 즉, 배포 가능한 상태만을 관리하는 브랜치입니다.
Develop Branch : 개발 (Develop) 이력을 관리하는 Branch입니다.
Release로부터 분기되어 만들어지며, 버그와 테스트가 완료되면 Release로 병합되어 최종적으로 Master로 병합됩니다.
Sub Branches : feature, release, hotfix
Feature Branch : 기능 개발 Branch
새로운 기능을 개발하거나 버그 수정이 필요할 때 Develop Branch로부터 분기되어 만들어지며, 개발이 완료되면 Develop Branch로 병합합니다.
이름은 통상적으로
feature/기능요약
으로 사용합니다.Release Branch : 출시 버전 Branch
배포를 진행하는 Branch 입니다.
- Release Branch 생성과 동시에 배포 사이클이 시작됩니다.
- 버그 수정, 문서 추가 등 배포에 필요한 작업을 진행합니다.
- 배포 전 버그 확인, 테스트 등 모든 작업이 완료되면
master Branch
로 병합합니다. (commit 에 버전 tag를 부여하여 관리합니다.) - 혹시나 Master Branch와 Develop Branch 간의 차이가 생겨 다음 개발이 잘못 진행될 수 있으니 배포, 병합이 완료된 후에는 Main Branch들을 동기화시켜 줍니다.
Hotfix Branch : 긴급 버그 수정 Branch
긴급하게 버그를 수정하기 위해 사용합니다.
develop
에서 기존 개발 flow 대로 처리를 하면 너무 늦어지기 때문에 바로master
에서 분기하여 수정한 후 병합하여 배포합니다.Release
와 마찬가지로master
에 병합한 후에develop
에도 병합하여 동기화를 해줍니다.
'SW > Git' 카테고리의 다른 글
[Git] Basic (0) | 2021.06.08 |
---|
Comment