본문 바로가기

기타

GitFlow, 깃 전략, 브랜치 전략

서론

부스트캠프 멤버십 팀 프로젝트 중 깃전략에 대한 이야기가 나왔다.

처음엔 우리팀의 인원이 적어서 깃허브에 있는 upstream repository를 각자 클론해서 feat을 devlop에 합치는 쪽을 생각했었다. 

팀원 중 한명이 우형의 Git-flow를 적용시켜보자고 했다..

 

그래서 우형의 글을 읽게 되는데..

 

참고

 

우린 Git-flow를 사용하고 있어요 | 우아한형제들 기술블로그

{{item.name}} 안녕하세요. 우아한형제들 배민프론트개발팀에서 안드로이드 앱 개발을 하고 있는 나동호입니다. 오늘은 저희 안드로이드 파트에서 사용하고 있는 Git 브랜치 전략을 소개하려고 합

techblog.woowahan.com

 

우형의 Git-flow글을 보면서 생각

 

  • upstream remote repository
  • origin remote repository
  • local repository
  1. local에서 작업해서 origin으로 push한다.
  2. origin에서 upstream으로 PR을 보낸다.
  3. local에서 upstream의 작업을 pull 받아서 다시 작업을 한다.

-> 단방향으로 플로우가 흐르는구나를 다시 한번 느낄 수 있었다. 현재 부캠 멤버십에서 업스트림을 다룰 때 fatch and rebase를 하는데 여기선 Pull로 upstream에서 local로 가져오나보다.

 

궁금한 점

처음에는 플로우를 이루는 각 브랜치들은 어디 repository 에서 움직이는거지??에 대한걸 생각하지 못했다.

master, develop, feature 등 모든 브랜치가 upstream에서 되는건가?? 어디서 각각 있는거지?? 

 

팀마다 다르고 상황마다 다르겠지~ 우리팀에 맞게하자!

 

일단 우리팀은 

upstream에는 master, develop 브랜치

origin에서는 develop 브랜치

local에서는 develop에서 각 feature를 브랜치 뜨는걸로 했다. 

 

local feature을 origin에 push하고 origin/feature를 upstream의 develop에 PR보내는 형식!! 

 

 

결과

 

Git-flow를 완벽히 따르다기보단 우리팀에 맞게 브랜치도 줄이고 github를 쓰게되면서 auto close issue를 사용하기 위해 develop 브랜치를 default branch로 두는 등 약식으로 조절해서 사용하게 됐다.

 

https://github.com/boostcampwm-2021/iOS05-Escaper/wiki/%EB%B8%8C%EB%9E%9C%EC%B9%98-%EC%A0%84%EB%9E%B5

 

GitHub - boostcampwm-2021/iOS05-Escaper: 🔎 방탈출 카페의 정보를 한번에!!! 위치, 테마, 난이도 별로 검색

🔎 방탈출 카페의 정보를 한번에!!! 위치, 테마, 난이도 별로 검색하고 방탈출 정보를 기록하고 친구들과 공유하세요. 랭킹도 확인할 수 있습니다! 🔍 - GitHub - boostcampwm-2021/iOS05-Escaper: 🔎 방탈

github.com

 

후기

 

신기하다 우아한형제들의 깃플로우 전략은 유명해서 예전부터 한번씩 깃플로우가 뭐지? 하는 심정으로 봤었는데 이제는 upstream, origin, local을 부캠하면서 써봐서 그런지 예전보다 더 잘읽힌다.