Git hub의 이해
Git hub
깃허브(GitHub)는 분산 버전 관리 툴인 깃 저장소 호스팅을 지원하는 웹 서비스이다.
깃허브에 가입을 하게 되면 repository라는 곳을 처음 접하게 됩니다.
Git Repository 구성
위 그림은 Git Repository 구성과 워크플로우를 설명하고 있습니다. Local Repository에서 작업을 완료한 한 후 작업 브랜치을 Origin Repository에 push합니다. 그리고 Github에서 Origin Repository에 push한 브랜치를 Upstream Repository로 merge하는 Pull Request를 생성하고 코드리뷰를 거친 후 merge 합니다. 다시 새로운 작업을 할 때 Local Repository에서 Upstream Repository를 pull 합니다.
우리가 프로그램을 개발을 하게 되는 경우 개발자가 계속 개발하고있는데 사용자가 계속 사용을 하는 경우 문제가 발생할 수 있습니다. 이러한 부분을 해결하기 위해서 다양한 코드관리 전략이 있는데 그 중 Git-flow가 있습니다.
Git-flow
Git-flow에는 5가지 종류의 브랜치가 존재한다. 항상 유지되는 주요 브랜치들(master, develop)과 일정 기간 동안만 유지되는 보조 브랜치들(feature, release, hotfix)이 있다.
-
master : 제품으로 출시될 수 있는 브랜치
-
develop : 다음 출시 버전을 개발하는 브랜치
-
feature : 기능을 개발하는 브랜치
-
release : 이번 출시 버전을 준비하는 브랜치
-
hotfix : 출시 버전에서 발생한 버그를 수정 하는 브랜치
위 그림을 일반적인 개발 흐름으로 살펴보겠습니다.
처음에는 master와 develop 브랜치가 존재합니다. 물론 develop 브랜치는 master에서부터 시작된 브랜치입니다. develop 브랜치에서는 상시로 버그를 수정한 커밋들이 추가됩니다. 새로운 기능 추가 작업이 있는 경우 develop 브랜치에서 feature 브랜치를 생성합니다. feature 브랜치는 언제나 develop 브랜치에서부터 시작하게 됩니다. 기능 추가 작업이 완료되었다면 feature 브랜치는 develop 브랜치로 merge 됩니다. develop에 이번 버전에 포함되는 모든 기능이 merge 되었다면 QA를 하기 위해 develop 브랜치에서부터 release 브랜치를 생성합니다. QA를 진행하면서 발생한 버그들은 release 브랜치에 수정됩니다. QA를 무사히 통과했다면 release 브랜치를 master와 develop 브랜치로 merge 합니다. 마지막으로 출시된 master 브랜치에서 버전 태그를 추가합니다.
참고자료
https://ko.wikipedia.org/wiki/%EA%B9%83%ED%97%88%EB%B8%8C
https://techblog.woowahan.com/2553/
https://nvie.com/posts/a-successful-git-branching-model/
https://gist.github.com/ihoneymon/a28138ee5309c73e94f9
'Gitbub' 카테고리의 다른 글
Repository 만들기 (0) | 2022.04.05 |
---|
댓글