github 에서 팀 프로젝트를 위해서 팀장이 레포지토리를 생성하고 팀원을 참여자로 추가한다. 그리고 팀원은 fork 를 통해서 클론해서 프로젝트에 참여 작업을 이어 나갈 수 있다.

레포지토리 생성 (팀장)

참여자 관리 (팀장)
프로젝트 레포지토리에 팀원을 추가해 준다. 레포지토리 Settings 에서 Collaborators 페이지에서 참여자를 관리할 수 있다.

Collaborator 에 추가할 github 사용자를 검색

Collaborators 추가 사용자 목록

참여자 알림 확인
사용자는 알림에 Collaborator 에 추가되어 허용할지를 등록

요청받은 collaborator 을 받아들인다

Fork & Pull Request, Merge
깃헙을 통해 프로젝트를 수행한다면 레포지토리 fork, pull-request, commit 을 통해서 여러 참여자/기여자의 코드를 동기화 할 수 있다.
https://www.tomasbeuzen.com/post/git-fork-branch-pull/
팀장이 공유할 레포지토리를 만든다

팀원이 프로젝트 레포지토리를 fork 한다

fork 하는 레포지토리 정보를 입력한다

포크한 레포지토리에 새 파일을 추가한다.
팀원 레포지토리로 포크한 프로젝트 레포지토리에 새 파일을 추가한다.
github desktop으로 하는 예제는 마지막에 있다.

팀원, 포크한 레포지토리에 새 파일이 추가되었다

팀원, 변경 사항을 Open Pull Request 한다

팀원, Pull Request 내용을 적는다

팀원, 변경 사항을 Open Pull Request 한다

팀장, Pull Request 를 확인한다.

팀장, Pull Request 를 확인한다.

팀장, Merge 한다.


프로젝트 레포지토리에 팀원이 추가한 파일이 추가 되었다.

포크한 레포지토리를 Sync 해서 동기화를 한다.

Sync 해서 동기화로 upstream 과 commit 을 일치시킨다

클라이언트에서 fork 레포지토리 작업
팀 레포지토리에 참여한 사용자가 원격 레포지토리를 클론해서 로컬에서 작업을 할 수 있다. 작업한 결과는 Push를 통해서 원격레포지토리에 동기화를 한다.
fork한 레포지토리를 로컬에 클론한다
Github desktop을 이용해서 레포지토리를 선택해서 클론을 수행한다.

클론 레포지토리를 저장할 위치를 정한다.

Git desktop은 직접 Upstream에 pull request 를 할 수 있도록 지원하고 있지만 여기서는 Push 를 사용하겠다.

클론한 로컬 레포지토리에서 새파일 작업을 한다

레포지토리에 변경 사항을 커밋을 한다.

로컬의 커밋 변경을 PUSH 한다

github upstream에 pull request 한다
