Git Flow를 적용하면 프로젝트에 관한 관리가 용이해진다. 서로 협업할 때도 일관성 있는 규칙을 적용한다면 커뮤니케이션이 쉬워지기 때문이다. 이후 프로젝트가 종료 되더라도 코드를 수정할 때도 수정하기가 편리하다.
용어설명
메인 저장소 : 오픈소스 프로젝트의 github상 main repo로 내가 기여하고싶은 프로젝트의 저장소. 나한텐 쓰기권한 없음. 그래서 이를 upstream이라고 부른다.
나의 저장소 : github에서 내 계정에 있는 repo로 메인 저장소로 부터 fork한 저장소 origin이라고 부른다.
로컬 저장소 : 내가 컴퓨터에 생성한 git repository file
작업 공간 : 실제 소스코드가 있는 workspace를 부른다.
먼저 Organization에 Git Flow를 적용할 메인 저장소를 만든다. (기존에 존재한다면 이 과정은 생략해도 된다)
메인 저장소의 settings에서 branch 탭에 들어가서 default 브랜치를 dev로 바꿔준다. (현재 프로젝트 같은 경우에는 단순히 main을 dev로 이름을 변경해주었다. 프로젝트에 맞게 branch관리를 해주면 된다. 여기서 default branch란 pull request한 코드가 merge될 branch를 설정해놓는 것이다.)
나의 저장소로 fork 한다.
fork된 나의 저장소의 project를 git clone한다.
git clone 로컬 저장소
upstream을 추가해준다.
git remote add upstream <메인 저장소>
이제 템플릿을 적용해보자.
트렐로를 사용하시는 분들은 익숙할 것이다. git에도 프로젝트 진행 공유를 위한 툴을 제공한다.
(원하는 template이 있다면 적용해주고 아니면 None으로 두자.)
원하는 column을 만들어서 프로젝트 진행상태를 공유할 수 있다.
메인 저장소의 Settings탭의 General탭에서 조금 내리다 보면 Set up template버튼이 보일 것이다. 눌러서 새로운 template을 생성해주자.
add template에서 custom template을 선택해준다음에 Preview and Edit를 눌러 Template을 수정해준다. 작성자는 개인적으로 사용하는 Template을 가지고 있어 아래와 같이 수정해주었다.
그리고 상단에 Propose Changes 버튼을 눌러서 꼭 Commit을 해준다. (메인 저장소에 해당 템플릿을 추가해주는 과정이다.)
메인 저장소에 레포이름.github/ISSUE_TEMPLATE/ 루트에 해당 template이 생성이 되었을 것이다.
추가) Pull Request 템플릿을 추가하고 싶다면
.github/ 경로에 pull_request_template.md라는 이름으로 템플릿을 추가해주면 된다.
Slack 연동은 간단하다.
자세한 설명도 첨부하고 싶어 링크로 대체하겠다.
참고 링크
메인 저장소에서 Issue를 생성한다.
Issue를 생성했으면 뒤에 Issue 번호가 있을텐데 해당 Issue번호를 포함해서 branch를 만들어주면된다.
작업은 자신의 로컬 저장소에서 진행해야 한다!!
원본 저장소의 내용을 업데이트 하기 위해 pull을 진행해준다.
git pull upstream dev
자신의 로컬 저장소임을 확인한 뒤에 branch를 생성한다.
feature/<issue_number>/<issue_name>
위와 같은 형식으로 생성한다.
생성한 브랜치로 checkout한 뒤에 작업을 진행한다.
작업을 마치고 난 뒤 혹시 모를 메인 저장소의 변경사항을 적용하기 위해 다시한번 pull을 진행해주자. (충돌 나는 코드가 있다면 여기서 해결하고 push 해야한다.)
git pull upstream dev
push를 진행하주자.
1) git add .
2) git commit -m "Feat: 새로운 내용추가"
3) git push origin feature/<issue_number>/<issue_name>


감사합니다 다츠! 완전 잘 이해돼요 👍