Centralized(중앙집중형)
하나의 branch(main branch)에서 모든 사람이 작업을 시행
- 다른 branch를 신경 쓸 필요가 없음
- conflict/merge 해결을 위해 오랜 시간이 걸림
- 기본 코드를 건드리지 않고 작업하기가 불가능
- branch에 불완전한 코드를 올려야 하고, 모든 팀원의 코드가 불안정해짐
Feature Branch
main branch에서 작업하지 않고 feature branch에서만 작업함
- 준비가 된 feature branch를 main branch로 merge
- main branch를 망가뜨릴 위험 감소
- 작동하지 않는 코드를 가지고 있어도 협업 가능
Fork and Clone
권한이 없어도 repository의 복사본을 만들고 기여할 수 있음
Fork
상대의 repository를 복사해 내 github 계정에 복사본 생성
작업순서
- 프로젝트 fork
- fork repository(origin)를 clone
- upstream(원본 프로젝트)을 remote로 추가(원본에 변경사항이 생기면 pull 할 수 있게)
- 코드 작업
- origin으로 push
- upstream으로 pull request 보내기