더 알아보기/개념

Git fork vs clone

은돌1113 2022. 2. 5. 18:03

프로젝트를 진행 하면서 clone과 fork를 많이 했었는 데

정작 정확한 의미는 모르고 있었던 것 같아 이참에 제대로 정리 해보기로 하였다!

 

아래 사이트들을 참고하여 정리 하였다.

 

[Git] clone 과 Fork 의 차이점

이번 글에서는 clone과 Fork의 차이점을 알아보려 한다. 1. fork란? fork는 다른 사람의 Github Repository에서 내가 어떤 부분을 수정하거나 추가 기능을 넣고 싶을 때 해당 repository를 내 Github Repository..

devlog-wjdrbs96.tistory.com


  [ Fork ]  

 

fork는 다른 사람의 Github Repository에서 내가 어떤 부분을 수정하거나 추가 기능을 넣고 싶을 때

해당 repository를 내 Github Repository에 그대로 복제하는 기능을 말한다.

 

fork한 저장소는 원본(원래 Repository 주인)과 연결 되어 있기 때문에 원래 Repository에 어떤 변화가 생기면(새로운 commit, push 등등) 그대로 fork된 repository에 반영 할 수 있다. 이때 fetch, pull의 과정이 필요하다.

 

그 후 original Repo에 변경 사항을 원본 Repo에 적용하고 싶다면 원본 저장소에 pull request를 보내야 한다.

pull request가 original Repo의 관리자로 부터 승인 되었다면 내가 수정한 코드가 commit, merge 되어 원본 Repo에 반영된다. pull requests 하기 전까지(merge 하기 전까지)는 내 github에 있는 fork한 Repo에서만 변경사항이 적용된다.

 

즉, Repo에 권한이 없는 사용자가 저장소를 fork하고 fork한 자신의 저장소에 변경사항을 적용한 후 push 한다.

이후 내 저장소에 있는 브랜치를 원래 저장소(original repo)에 pull requests 요청을 보낸다.

내가 만든 코드가 승인되면 해당 저장소에 Merge 된다.

 

예시

그러면 위와 같이 아이디/레포지토리을 보았을 때 아이디가 다른 것을 볼 수 있다.


  [ Clone ]  

 

clone은 특정 원격 Repositoy와 나의 로컬 PC를 연결해 데이터를 복사하여 가져오는 기능이다.

내가 생성한 원격 저장소를 내 컴퓨터와 연결해서 데이터를 복사하는 작업

포크한 원격 저장소를 내 컴퓨터와 연결해서 데이터를 복사하는 작업

위 사진처럼 clone 받고 싶은 Repo에 들어가서 Code를 클릭 후 레포지토리 주소를 복사한다.
복사한 주소를 cmd에 아래와 같이 입력하면 clone 받을 수 있다. 실행 할 때는 code .을 입력하면 된다.

git clone https://github.com/whl5105/Team-Zzz-FrontEnd.git