본문 바로가기

카테고리 없음

[Git] Fork

https://git-fork.com

Fork

 

GitHub에서 fork는 다른 사용자의 저장소(repository)를 자신의 계정으로 복사하는 것. 이렇게 복사된 저장소는 원본 저장소와 완전히 독립적으로 관리되며, 원본 저장소에 영향을 주지 않고 자유롭게 변경할 수 있음.

1. fork와 clone의 차이점

출처 :https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/command-line-GitHub-fork-CLI-terminal-shell

  • fork: GitHub 서버에서 원격 저장소를 복사하여 자신의 계정에 새로운 저장소를 만듬
  • clone: 원격 저장소를 자신의 컴퓨터로 복사하여 로컬 저장소를 만듬

2. Pull  requset

다른 개발자가 만든 오픈소스 프로젝트에 자신의 변경사항을 제안하고, 원래 저장소의 소유자가 해당 변경사항을 검토하고 병합할 수 있도록 요청하는 것. 말 그대로 Pull(당기도록) Request(요청)하는 것.

fork 후 pull-request 하기까지의 절차

fork 후 pull-request 절차는 아래와 같음

 

1. 오픈소스 프로젝트 Github 저장소 fork(자신의 Github 계정에 해당 프로젝트 코드를 가져옴)

 

2. Fork한 저장소를 로컬 컴퓨터로 Clone

3. 로컬에서 코드를 수정하고, 변경사항을 Commit

4. Fork한 원래 저장소와 동기화하기 위해 원래 저장소를 Remote로 추가

git remote add upstream 원본저장소주소
  • fork한 이후에 원본 저장소가 업데이트 될 수 있으므로, 자신의 fork 저장소에도 변경사항 반영

5. Fork한 원래 저장소의 변경사항을 가져오고, 자신의 Fork 저장소와 Merge.

git fetch upstream
git merge upstream/main

6. 변경사항을 자신의 Fork 저장소에 Push

7. GitHub 웹사이트에서 자신의 Fork 저장소로 이동하여 Pull Request 버튼
8. 변경사항을 설명하는 제목과 내용을 작성한 후, Pull Request(저장소 소유자가 확인하고 Merge 가능)