GitNotes.22-4.md
본 문서는 Git Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

Section 22.4: GitHub Flow

오픈 소스 프로젝트들에서 많이 사용되는 방식이지만 꼭 오픈 소스 프로젝트에만 국한되어 사용되는 것은 아니다.

특정 위치의 (Github, Gitlab, Bitbucket 혹은 로컬 서버 등) master 브랜치에는 가장 최신의 출시 가능한 버전이 탑재되어 있다. 각각의 새로운 기능 (feature)/버그 수정/아키텍처상의 변경사항을 위해서는 개별 브랜치를 생성한다.

변경사항은 이렇게 새롭게 생성된 브랜치에 만들어지며, 관련된 논의는 pull request, 코드 리뷰 등의 형태로 이루어질 수 있다. 최종적으로 승인이 이루어지면 이 변경사항들은 master 브랜치에 merge 된다.

Scott Chacon 에 의해 정리된 전체 흐름:

  • 무엇이든 master 브랜치에 존재하는 것은 배포 가능한 상태여야 한다
  • 새로운 작업을 시작하려면, 해당 작업에 대한 내용을 기술하는 이름을 가진 새로운 브랜치를 master 브랜치로부터 새로 생성한다 (예: new-oauth2-scopes)
  • 해당 브랜치에 대해 로컬에서 커밋을 수행하고, 주기적으로 작업된 내용을 서버의 동일한 이름의 브랜치로 push 한다
  • 작업한 내용에 대해 의견이나 도움이 필요하거나, 혹은 해당 브랜치가 master 에 merge 될 준비가 완료되었다고 생각이 드는 경우에 pull request 를 생성한다
  • 다른 누군가가 해당 새로운 기능에 대해 리뷰 후 최종 승인을 완료한 경우, master 에 merge 수행이 가능하다
  • master 브랜치에 merge 및 push 가 완료된 경우, 해당 기능에 대한 배포가 즉시 가능해지며, 실제 즉시 배포를 수행하도록 한다

Scott Chacon 의 개인 웹사이트 personal web site 에 원본이 게시되어 있다.

GithubFlow

GitHub Flow reference 의 허가를 받아 게재되는 이미지

[출처] https://books.goalkicker.com/GitBook/ (CC BY-SA)

반응형

+ Recent posts