필자는 이때까지 혼자서 개발을 해왔기 때문에 여러 branch를 생성할 필요가 없었다.
하지만, 추후에 회사에 입사하게 되었을 때 다른 개발자와의 협업 경험이 꼭 필요하다 느껴,
같은 앱을 같이 개발할 수 있는 동아리에 지원하고자 한다.
그렇기 때문에, 프로젝트를 진행하는데 문제가 없도록 Git branch 전략을 미리 공부하기로 했다.
여러 개발자가 협업하는 환경에서 git 저장소를 효과적으로 활용하기 위한 work-flow
실무에서 협업을 진행하게 되면 동일한 소스코드를 모든 개발자가 함께 공유하고 다룬다.
기능을 개발하기도 하고 버그를 수정하거나 테스트를 진행하기도 한다.
동일한 코드로 시작을 했지만, 서로 다른 버전의 코드가 만들어지게 된다.
이렇게 동시에 각자 다른 작업들을 수월하게 진행하기 위해서 Git branch 전략을 사용한다.
master
, develop
feature
, release
, hotfix
(merge 후 삭제)feature/{구현기능명}
(ex: feature/login
- login 기능을 구현하는 브랜치)develop
브랜치에서 생성되며, develop
브랜치로 merge됨develop
feature
에서 merge하며 살을 붙여나감release
브랜치로 merge 됨release-1
같은 방식으로 버전에 따른 릴리즈 지정master
로 merge하여 배포develop
브랜치에서 생성되며, 버그 수정 내용을 develop
에도 반영함master
)에서 버그 발생 시 생성되는 브랜치hotfix-1
release
에서 버그 검사를 했지만, 배포 후 예기치 못한 버그 수정master
브랜치에서 생성되며, 수정 완료 시 develop
, release
, master
브랜치에 수정 내용 반영develop
브랜치에서 개발이 진행되어도 이전 release
브랜치 내용이 master
에서 배포되어 있음master
브랜치는 항상 실행 가능한 상태여야함release
와 master
의 구분이 모호함master
브랜치 하나만을 가지고 pull request를 활용해 진행하는 방식master
브랜치에서 개발 시작master
브랜치에서 생성한 feature/{구현기능명}
브랜치에서 개발을 하고 commit log 작성release
브랜치가 없으므로 이 과정이 탄탄하게 진행되야함)master
브랜치에 merge-> master
브랜치에 merge 될 때마다 배포가 이루어지는 것이 좋음 (CI/CD)
-> 팀원 간 충분한 리뷰와 피드백 필요
다음 프로젝트 진행 시 꼭 적용해보면서 최대한 습득할 것이다.