1. 다른 사람의 원격 레포(원본 레포)를 Fork하여 내 원격 레포로 Fork한다.

  2. git clone을 통해 내 local 환경에 지역 레포를 생성한다.

  3. 기존에 등록된 remote(origin = 본인 원격 레포) 이외에 원본 레포도 remote로 등록한다. (upstream으로 많이 사용) git remote add [별칭] [fork 받은 레포 URL]

  4. [master|main] branch에서 작업하지 않고 branch Convention을 참고하여 브랜치를 생성한다.

    git checkout -b [새로운 이름]

  5. 생성한 브랜치에서 변경, 추가, 수정을 진행한다.

    작업 후 동일하게 add → commit

  6. push는 본인 원격 레포에만 진행한다.

  7. 해당 브랜치의 작업이 완료되면, push 이후 fork 받은 레포에서 pull을 받아 local 환경에서 merge를 수행한다.

  8. merge를 모두 마치고나서 깃헙에서 Contribute를 클릭하여 PR을 요청한다.

    Untitled

  9. 원본 레포의 관리자 혹은 컨트리뷰터가 PR된 코드를 살펴보고 리뷰등을 진행한 뒤 승인한다.

  10. 원본 레포에 작업한 코드들이 merge되어 반영된다.

  11. 원본 레포의 merge된 변경 사항을 본인 원격 레포의 main에 Fetch 한다.(코드 동기화)

    Untitled

  12. 작업을 위해 생성했던 브랜치는 삭제하고 새로운 작업을 위한 브랜치를 본인 레포 main에서 생성한다.

참고 북마크

협업을 위한 Git Fork와 PR

git) git으로 협력하기 - fork