이 글에서는 Github flow에 대해서 최대한 이해하기 쉽게 설명합니다.
- Github flow란?
- Github flow의 상세 개발 절차
- Github 협업 툴 github desktop(깃허브 데스크탑)
Github flow란?
Github flow란 github 사이트에서 개발자들이 협업해서 개발하는 방식을 의미합니다.
Git을 이용해서 개발할 때 다양한 Git 브랜치 전략들이 있는데, 매우 복잡하기도 하고 Github에서 사용하기 불편한 측면도 있습니다. 그래서, Github에서는 Github 사이트에서 이용할 수 있는 가장 쉬운 방법으로 협업할 수 있는 Github flow라는 것을 통해 협업하는 방식을 취하고 안내하고 있습니다.
Github flow를 간략하게 보여드리면 위와 같은 형태로 main branch는 언제나 릴리즈 가능한 상태로 유지합니다. feature 혹은 develop 브랜치인 신규 브랜치들은 개발 혹은 협업을 진행하고 개발이 완료되면 main(구 master) 브랜치로 병합합니다.
※ 이전에는 main 브랜치를 master 브랜치라고 불렀으나 어감(master/slave 주인/노예)의 문제로 main 브랜치로 변경하게 되었습니다.
Github flow의 상세 개발 절차
깃허브 플로우의 더 다양한 예시로 다음과 같이 진행 될 수도 있습니다.
위 그림은 Github Flow의 전반적인 개발 협업 방식을 나타내고 있습니다.
1. 작업 브랜치 생성 (Create a branch)
먼저, 개발자는 작업을 위한 브랜치를 생성합니다. 이 브랜치는 main(구 master) 브랜치에서 파생된 새로운 브랜치입니다.
2. 코드 작성 및 커밋 (Add commits)
개발자는 새로 생성된 브랜치에서 코드를 작성하고, 이를 여러개의 커밋(commit)으로 나누어서 작성합니다. 그리고 이 커밋들을 개발자의 작업 브랜치에 저장합니다.
3. 풀 리퀘스트(Pull request)
작업 내용이 끝나면, 개발자는 풀 리퀘스트(Pull request)를 생성합니다. 풀 리퀘스트란, 다른 개발자들에게 개발자의 작업 브랜치에서 main(구 master) 브랜치로 변경사항을 병합해달라고 요청하는 것입니다.
4. 코드 리뷰 (Code review)
풀 리퀘스트를 받은 다른 개발자들은 코드 변경사항을 확인하여 코드 리뷰를 수행합니다. 이 과정에서, 코드 수정사항이 필요한 경우 수정사항에 대한 피드백을 주고 받으며, 코드 수정이 필요한 경우 작업 브랜치에서 필요한 수정사항을 반영합니다.
5. 병합(Merge)
모든 코드 리뷰 과정이 끝나면, 마지막으로 개발자는 작업 브랜치를 main(구 master) 브랜치로 병합(Merge)하고, 이를 Github에 반영합니다.
이렇게 Github Flow는 작업 브랜치를 기반으로 코드 작업을 하고, 풀 리퀘스트를 통해 코드 리뷰 및 병합을 하는 방식으로 개발 협업을 수행합니다. 이 방식은 코드 변경사항의 추적과 분리가 용이하고, 팀원들끼리의 코드 리뷰를 수월하게 할 수 있다는 장점이 있습니다.
Github 협업 툴 github desktop(깃허브 데스크탑)
Github에서는 로컬 장비에서 gui로 github 사이트를 활용할 수 있도록 gui 툴인 github desktop(깃허브 데스크탑)을 지원합니다. 이 툴을 이용하여 더 편리하게 github 사이트를 이용할 수 있습니다.