한 프로젝트에 여러명의 개발자가 함께 할 때, 동일한 소스 코드 위에서 각자 맡은 부분에 따라 제각기 개발이 이뤄진다. 그렇기 때문에 각각 서로 다른 버전의 코드가 만들어 질 수 밖에 없다. 이럴 때 여러 개발자들이 동시에 다양한 작업을 진행할 수 있도록 하는 기능이 브랜치(Branch) 이다. 각자 독립적인 작업 영역에서 마음대로 작업을 진행하고, 나중에 원래의 버전과 비교해서 새로운 버전으로 만들어 낼 수 있다.
- 마스터 브랜치 (Master)
나무로 치면 기둥이 되어주는 브랜치로 저장소를 처음 만들때 생기는 브랜치이다. 작업 브랜치는 마스터를 기준으로 뻗어나갈 수 있다. - 통합 브랜치 (Intergration)
언제든지 배포할 수 있는 버전을 만들 수 있어야 하는 브랜치이다. 그렇기 때문에 늘 안정적인 상태를 유지해야 한다. 어떤 프로그램의 모든 기능이 정상적으로 동작하는 상태를 유지해야 한다. 일반적으로 master 를 통합 브랜치로 사용한다. - 토픽 브랜치 (Topic)
기능 추가나 버그 수정과 같이 단위 작업을 수행하는 브랜치이다. 이 특정 작업이 완료되면 다시 통합 브랜치로 병합하는 방식으로 진행한다. 피쳐 브랜치 (Feature) 라고 부르기도 한다.
커밋하지 않은 변경 내용이나 새롭게 추가한 파일이 인덱스와 작업 트리에 남아 있는 채로 다른 브랜치로 전환(checkout) 하면, 그 변경 내용은 기존 브랜치가 아닌 전환된 브랜치에서 커밋할 수 있다. 스태이시(stash)를 이용해 일시적으로 변경 내용을 다른곳에 저장하여 충돌을 피하게 한 후 체크아웃을 해야 하는데, 이 때 스태이시는 파일의 변경 내용을 일시적으로 기록해두는 영역을 의미한다.
브랜치 통합에는 병합(merge)과 재지정(rebase)이 있다. 이를 사용하는 방법에는 두가지가 있다.
- Merge만 사용한다.
- Rebase와 Merge를 사용한다.
Rebase를 사용하고 안하고의 차이는 Git History가 매우 깔끔해질 수 있다. 여러명의 개발자가 함께하지만 순서대로 커밋한 것 처럼 정리할 때는 Rebase를 사용한다. 하지만 정확한 이력을 남겨야 하는 경우에는 사용하면 안된다.
크게 4가지 종류의 브랜치를 이용해서 개발을 진행한다.
- 메인 브랜치 (Main Branch)
- 토픽 브랜치 (Topic Branch) or 피처 브랜치 (Feature Branch)
- 릴리즈 브랜치 (Release Branch)
- 핫픽스 브랜치 (Hotfix Branch)
출처 : https://backlog.com/git-tutorial/kr/
'코딩 > 정말 나는 잘 알고 있을까?' 카테고리의 다른 글
Git pull 에러 (0) | 2022.05.31 |
---|---|
Webpack, Babel 이 뭐야? (feat. Framework, Library) (0) | 2022.05.25 |
Git - Mac에서 Git 사용하기 (0) | 2022.05.21 |
GIt - Github, Gitlab (3) (0) | 2022.05.17 |
GIt - Github, Gitlab (1) (0) | 2022.05.15 |