이번에 팀프로젝트를 진행하면서 깃허브로 협업하는 방법에 대해 알아보려 한다.
1. 같은 repository에서 collaborator 일 때
Collaborator 추가
github > settings > manage access > 초대
Branch protection
github > settings > Branches > Branch protection rule 설정
- master
- Require pull request reviews before merging
- include administrators
sub branch 생성
sub branch에서 작업 후 master로 pull request를 보냄(Create Pull Request)
- git checkout -b (sub branch) : sub branch를 만들면서 그 branch로 스위칭
- git add .
- git commit -m "message"
- git push origin (sub branch) : github에 새로운 브랜치 등록됨
- Create Pull Request
- reviewer를 클릭해서 review 요청
- reviewer가 승인 후 merge하면 최종반영 됨
2. 둘 이상의 원격저장소로 협업하기
1) 원본저장소를 복사해서 원격저장소를 만든다(fork)
2) 원격저장소를 로컬저장소로 가져온다(clone)
3) 원격저장소에서 원본저장소로 풀 리퀘스트를 보낸다(pull request)
로컬 테스트용
- 한 컴퓨터에서 진행하면 이 전에 로그인된 github 계정으로 새로운 fork한 계정에 push를 하려고 하므로 로컬에서 github 계정을 스위치해야 함
- SourceTree 앱을 이용해서 스위칭했음
- 팀에서 각자 다른 컴퓨터로 협업할 땐 상관 없음
- github에서 fork한 계정으로 push를 했으면 Pull request를 보낼 수 있음
- Pull request > New pull request > create pull request
3. Reviewer의 approve
4) 풀 리퀘스트를 승인하고, 병합한다(merge)
- admin 계정에서 pull request tab > File changed > Review Change클릭 후 Approve 선택 후 Submit > Merge pull request > Confirm merge(최종 승인)
5) 묵은 커밋을 새 커밋으로 이력을 조작한다(rebase)
6) 깃허브 코드를 로컬에서 업데이트
- git fetch : github과 로컬의 상태를 비교해서 최신인지 확인
- git pull (원격명) (브랜치명) : github에 업데이트된 코드를 로컬로 다운로드
참고 문헌