Git을 사용한다는 것 , 여러가지 이유가 있겠지만 branch 전략을 이용한 git flow 활용이 아닐까 생각이 됩니다.
점점 여러 기업에서 git의 사용량이 늘어나고 있습니다.
위는 구글 트랜드에서 2020년 한국에서 git과 svn의 관심도 추이 그래프입니다. 파란색이 Git, 빨간색이 svn입니다.
자 본론으로 넘어와서 branch는 '독립적인 작업을 이루기 위한 개념' 이다. 독립적이다라는 단어에 집중을 해서 독립적으로 다른 소스를 작업하고 싶을 때, 브랜치를 하나 생성 ( 딴다는 은어(?)도 사용 ) 을 합니다. 생성된 브랜치에서 작업을 하다가 작업이 종료되는 시점에 Merge ( 병합 )을 하는 데 GitHub에는 Pull Request, GitLab에서는 Merge Request라는 용어로 병합요청을 보내고 요청이 수락되기 전까지 우리는 코드 리뷰라는 과정을 거치게 됩니다.
git flow란 무엇일까?
위에서 보는 flow 전략이 일반적으로 말하는 git flow입니다. 하지만 기업마다, 프로젝트 마다 상이한 부분이 있지만 대부분 기본틀을 가져와서 조금 변형하는 방식으로 하니 이 방식을 잘 기억해야합니다.
각 브랜치마다 정리를 해보면 다음과 같습니다
Main ( or Master -> 인종차별 이슈로 인해 명칭이 변경되었습니다. ) - 운영 관리 브랜치 . 클라이언트에 가장 가까운 브랜치
Develop - 개발 관리 브랜치 . 기능 개발에 집중된 작업 개념의 브랜치로 볼 수 있음.
hotfixes - 운영 중에 치명적인 버그가 발생되었을 때 , 해당 브랜치를 생성하여 cherry pick과 같은 기능을 사용하여 merge 및 관리를 하는 브랜치
release - 새로운 출시 버전을 관리하는 브랜치. 출시된 기존 버전 외에 해당 브랜치에서 작업을 하다 Main 으로 병합이 될 수 있음.
feature - 기능 개발을 위한 브랜치. 주로 새로운 작업을 위한 브랜치로 생성이 됩니다.
fork 툴 사이드바에 branch에 +버튼을 클릭하면 다음과 같이 'Create New Branch'가 보입니다.
위 그림은 feature라는 폴더 아래 '장택진-테스트' 라는 브랜치를 만들겠다는 뜻입니다.
다음과 같이 브랜치가 생성되고 한번 더블클릭 해주면 git check out(해당 브랜치로 이동)이 됩니다.
우리는 포컬 레포지토리에 새로운 feature branch를 만들었습니다. 이 순간부터 작업을 시작해주면 되고 작업이 끝난 후. 원격의 레포지토리로 push 및 merge request 를 진행하는 방법을 소개하겠습니다.