포크는 "업스트림" 리포지토리리라고도 하는 원본 리포지토리에 영향을 미치지 않고 프로젝트를 변경하도록 해줍니다. 리포지토리를 포크한 후, 업스트림 리포지토리에서 업데이트를 가져와 포크를 최신 상태로 유지하고, 끌어오기 요청을 사용하여 포크에서 업스트림 리포지토리로 변경 내용을 제안할 수 있습니다. 포크는 개인 계정 또는 조직에 있을 수 있습니다.
공식사이트
fork는 다른 사람의 repo를 나의 repo로 복제를 하는 기능이다.
오픈 소스 프로젝트에서, fork는 upstream repo에 변경 내용을 통합하기 전에 아이디어 또는 변경 내용을 반복하는 데 종종 사용된다.
fork로 다른사람의 repo를 나의 repo로 복제 함.
이때 upstream repo에서 변경사항은 최신 버전으로 받아 올수있다. sync fork 기능을 이용
나의 변경사항을 pull request로 upstream repo에 요청할 수 있다.
clone은 repo를 내 컴퓨터에 복사하여 새로운 저장소를 만드는 개념이다. 이 때 내 컴퓨터에 있는 새로운 저장소는 clone한 원본 repo를 remote 저장소 origin으로 설정되어 있다.
git clone사용시 fork와 다르게 기존의 제일 처음 original repo와 연결되지 못하기 때문에 저장소의 commit등의 log를 보지 못한다.
먼저 다른 사람의 repo에서 또는 협업자의 repo에서 create a new fork를 눌러준다.
로컬 저장소에 fork한 저장소를 clone해주고 원격 저장소에 원본 프로젝트를 원격 저장소로 등록을 해야한다.
git remote add upstream 원본저장소 주소
git remote -v 원격 저장소확인
git pull upstream main upstream과 동기화(sync fork)
최정정리를 하면서 나의 git 협업방식을 설명하려고 한다.
fork를 이용해 다른 사람의 repo를 내 repo로 가져오고
변경 사항이 있을경우 작업 후 해당 브랜치에서 commit을 하고
원본 저장소에 내용들을 sync fork 해서 최신화를 시켜준다
최신화 된 브랜치로 rebase를 사용해 merge후 push 그리고 pr을 날린다.