
분기점을 생성하여 독립적으로 작업할 수 있도록 도와주는 모델이다.
branch라는 영어 뜻이 가지인 것 처럼 여러 가지를 만들어 각각의 가지마다 코드를 작성하고 변경할 수 있게 해주는 것이다.
필요에 의해 만들어지는 각각의 브랜치는 다른 브랜치에 영향을 받지 않기 때문에, 여러 작업을 동시에 할 수 있다.
그리고 이렇게 만들어진 브랜치는 다른 브랜치와 병합(merge)하면서, 작업한 내용을 하나의 브랜치로 모을 수 있다.
즉, 여러명이 동시에 개발을 할 때, 서로의 작업에 영향을 주거나 받지 않는다.
만약 내가 작업한 것이 잘못되어 전체를 날려야할 경우에도 해당 작업 브랜치만 삭제하고 다시 만들면 된다.
git branch 명령어를 사용하여 브랜치 생성, 나열, 이름 변경 및 삭제 등을 할 수 있다.
$ git branch : 저장소의 모든 브랜치를 보여준다. = $git branch --list
$ git branch 브랜치명 : 브랜치명이라는 새 브랜치를 만든다.
$ git branch -d 브랜치명 : 브랜치 삭제 (사용완료, 실패했을 때 등 주기적으로 삭제하는것이 좋다.)
$ git switch 브랜치명 : 해당 브랜치로 이동 = $ git checkout 브랜치명
$ git checkout명령어로 사용되다가 최근에$ git switch로 바뀌는 추세이므로 둘다 알아두는 것이 좋다.
$ git merge 브랜치명 : 해당 브랜치명을 현재 위치의 브랜치에 병합한다.
예를 들어, hello라는 브랜치를 main 브랜치에 병합하고 싶다면
현재 위치를 main 브랜치에 두고$ git merge hello를 입력한다.
$ git push (-u) origin 브랜치명 : 해당 브랜치를 원격저장소에 push한다.
branching models 중 git flow에 대해 알아보자.
사용자가 사용할 수 있는(제품으로 출시될 수 있는) 것만 있는 브랜치
: 배포 이력을 관리하기 위해 사용. 즉, 배포 가능한 상태만 관리한다.
예전에는 master branch로 사용했지만, 요즘에 main branch로 바뀌고 있으므로 main branch로 기억하는 것이 좋다.
다음 개발을 위해 개발자들이 사용하는 브랜치
기능을 개발하는 브랜치
feature/기능요약 형식을 추천한다.출시할 버전을 준비(테스트)하는 브랜치
release-* 형식을 추천한다.(*에 버전 명시)출시한 버전에서 발생하나 버그를 긴급 수정하는 브랜치