Programming/git, github

[git, github] github-flow 정리

hyeonic 2021. 8. 1. 14:25

introduction

이번에 프로젝트를 진행하면서 github-flow 적용하기 위해 간단히 관련 내용을 정리해보려 한다.


github-flow

git 브랜치 전략 중 하나로, 이전에 작성한 git-flow보다 더 간단하게 적용이 가능하다. git-flow에서는 각 역할에 맞게 브랜치를 생성하고 적용해야 했다. 하지만 github-flow에는 별도의 브랜치가 분리되어 있지 않다. 또한 git-flow 방식은 github에서 사용하기엔 복잡한 부분이 많았다.

 

위 사진과 같이 main 브랜치를 기준으로 모든 브랜치가 뻗어 나간다. 이런한 main 브랜치는 항상 최신의 상태이며, stable한 상태로 배포되는 브랜치이다.

 

새로운 작업을 시작하기 위해서는 브랜치의 이름을 자세하게 작성하여 github에서 확인하기 쉽게 구별한다(위 사진의 브랜치 명은 예시로 작성한 것이다). 이렇게 생성한 브랜치는 원격 저장소 브랜치에 상시로 push한다. 코드 리뷰가 필요하거나 mainmerge한 준비가 되었으면 pull request를 생성한다.

 

작업에 대한 리뷰가 완료되면 main 브랜치로 merge한다. 주의해야 할 점은 merge가 완료되면 main 브랜치는 즉시 배포되어야 한다.

 

주의해야 할 점은 local repository에서 main 브랜치에 merge한 후 push하면 안된다는 것이다. main에 반영되는 것은 오로지 pull request를 통해서만 가능하다.


정리

브랜치 전략이 매우 단순하기 때문에 git을 활용한 협업을 처음 접하게 되면 쉽게 적용할 수 있을 것 같다. 하지만 main 브랜치는 항상 실행 가능한 상태를 유지해야 하기 때문에 좀 더 꼼꼼한 코드 리뷰나 테스트 작업이 필요할 것으로 예상된다.


References.

 

GitHub Flow – Scott Chacon

August 31, 2011 Issues with git-flow I travel all over the place teaching Git to people and nearly every class and workshop I’ve done recently has asked me what I think about git-flow. I always answer that I think that it’s great - it has taken a syste

scottchacon.com