⚝ Fork Workflow
- 팀장의 저장소를 Fork 해서 팀원마다 각자 저장소를 가지고 프로젝트를 진행하는 방식이다.
- 팀원은 각자의 저장소를 가지고 있기 때문에 자유롭게 작업이 가능하다.
- 팀원의 작업 내용은 Pull requests 를 통해 팀장의 확인 후 반영된다.
- 팀장 저장소의 권한은 팀장만 가지고 있으면서 다른 사람의 커밋을 프로젝트에 적용이 가능하다.
- 팀장이 코드를 확인하고 Merge 하기 때문에 안전하게 협업이 가능하다.
- 오픈소스 프로젝트에서 많이 사용하는 방식이다.
⚝ 협업하는 방법
1. 팀장 - 저장소를 만들고 프로젝트를 설정
Github 레파지토리 생성한다.
로컬에 초기 작업 환경을 설정한다. (프로젝트 생성)
# 레파지토리 연동
$ git remote add origin
$ git branch -M main
$ git push -u origin main
# git flow 를 사용하기 위한 초기화
$ git flow init
Branch name for "next release" development: [develop]
# develop 브랜치 생성 완료
# develop 브랜치 push
$ git push -u origin develop
레파지토리 설정으로 가서 팀원 등록 -> 메일보내기
main 브랜치에 대한 protected 설정을 해둔다.
2. 팀원 - Fork
팀장의 원격 저장소로 가서 Fork 버튼을 눌러 해당 레파지토리를 복사한다.
자신의 원격저장소를 로컬에 clone한다.
git flow init 을 해준다. 팀원도 자신의 develop 브랜치를 생성해서 작업하는 것이 좋다.
3. Issues 등록
팀원은 작업하기 전에 팀장의 원격 저장소의 Issues에 각자 담당할 일을 등록한다.
팀장은 Project 에서 Create a project 버튼을 클릭해서 Project 생성한다.
-> To Do, In Progress, Done 컬럼이 생성되고 이슈를 진행상황에 따라 확인 가능
팀원이 등록한 이슈를 확인하고 Assignees, Labels, Projects 등을 지정한다.
4. 각자 맡은 기능을 개발하고 개인 저장소에 Push
이건 Git Bash를 이용해도 좋고 프로그램 자체에서 Push를 진행해도 무방하다.
본인이 편한 방법으로 진행하면 된다.
5. Pull requests 생성
주의!! 팀장의 develop 브랜치로 보내야한다!!
6. 팀장 코드 리뷰 및 Merge
팀장은 Pull requests 에서 팀원이 작업한 내용을 볼 수 있고, File changed 에서 코드 리뷰를 할 수 있다.
Merge pull request 를 누르고 Confirm merge 를 누르면 현제 풀 리퀘스트가 팀장의 develop 브랜치에 반영된다.
7. Pull 하기
팀장의 로컬 저장소를 최신화하기 위해 git pull origin develop 을 해준다.
다른 팀원은 팀장의 원격 저장소의 내용을 pull 해야하기 때문에 git pull upstream develop 을 해줘야한다.
이때 환경에 따라서 upstream이 자동으로 추가되지 않을 수 있다. git remote -v 로 upstream 이 등록되어있는지 확인한다.
origin 만 있는 경우에는 git remote add upstream 팀장 원격저장소 주소 를 통해 upstream을 등록해주면 된다.
(참고사이트)
WordPress Developer Resources | Official WordPress Developer Resources
Official WordPress developer resources including a code reference, handbooks (for APIs, plugin and theme development, block editor), and more.
developer.wordpress.org
'Co-work > GitHub' 카테고리의 다른 글
stash (0) | 2023.08.07 |
---|---|
commit message 수정 (0) | 2023.07.30 |
upstream 관련 추가 정리 (0) | 2023.07.29 |
Git Commit (0) | 2023.07.25 |
Git 명령어 (0) | 2023.07.25 |