다른 사람의 깃허브 repository에서 내가 부분 수정을 하거나 추가 기능을 넣고 싶을 때
그대로 복사하여 자신의 github 계정에 원격 저장소를 생성, 복제하는 기능이다.
fork한 저장소는 원본과 연결되어 있다.
여기서 연결되어있다는 의미는 원본 레포지토리에 어떤 변화(commit, push)가 발생할 시
fork된 레포지토리로 반영(fetch, pull)할 수 있다.
fork한 레포지토리에서 변경 사항을 원본 레포지토리에 적용하고 싶으면
원본 저장소에 pull&request를 보내야 한다.
pull & request가 관리자로부터 승인이 난 뒤 수정 코드를
commit, merge되어 원본 레포지토리에 반영된다.
pull & request 하기 전에는 fork한 레포지토리에만 변경사항이 적용된다.
특정 원격 repository와 본인의 로컬 PC를 연결하여 데이터를 복사하여 가져오는 작업이다.
권한이 없는 경우 로컬의 변경 사항을 원본 레포지토리로 push 할 수 없다.
push를 진행할 때마다 원본 레포지토리에 작업해둔 브랜치를 고려해야하기에 fetch를 수행한 뒤 push를 해야한다는 번거로움이 있다.
| Github fork & clone process
저장소 clone (without fork)
1. 저장소 clone
2. 원하는 내용을 변경
3. commit 완료 시 수정 사항을 저장소에 push
저장소 clone (with fork)
1. 저장소 fork
2. 저장소 clone
3. 원하는 내용을 변경
4. commit 완료 시 수정 사항을 저장소에 push
5. 원본 저장소로 변경사항 PR 날리기