2022. 11. 5. 02:11ㆍGit
먼저, Fork와 Clone을 이해하려면, 저장소에대한 기본적인 이해가 필요하다.
저장소에는 로컬 저장소와 원격저장소가 있다.
로컬 저장소
어떤 git 저장소든 내 컴퓨터 파일시스템에 저장되어있는 저장소
(git init 명령어 사용)
원격 저장소
인터넷이나 네트워크 어딘가에 있는 저장소를 말한다.
Github는 원격 저장소를 제공해주는 웹 서비스 중 하나이다.
업스트림 저장소
fork해왔던 곳의 저장소를 upstream 저장소라고 한다.
이러한 저장소들을 확인할 수 있는 명령어는 아래와 같다.
git remote -v
그리고, 저장소들을 추가하는 방법은 아래와 같다.
git remote add [단축이름] [url]
* URL은 https://github.com/이름/저장소이름 이다.
fork란
다른 사람의 repository에 내가 어떤 부분을 수정하거나 추가하고 싶은 경우에 해당 repository를 내 계정의 repository로 복제하는 기능이다.
clone이란
특정 원격 repostiroy를 내 로컬 작업 공간에 복사하여 새로운 저장소를 만든다.
Pull request
포크된 저장소에 대한 변경 사항은 pull 요청을 통해 원래 저장소와 병합할 수 있다.
pull request의 경우 저장소 소유자의 허락이 있어야, 변경사항을 원래 자장소와 병합할 수 가있다.
Push
변경사항 또는 커밋이 완료된 수정 사항을 업스트림 저장소에 반영하는 것
복제 프로세스
- 사용자는 GitHub의 업스트림 저장소를 로컬 저장소에 복제한다.
- 복제후 로컬 자장소에서 소스파일을 편집하여 버그를 수정하거나 기능을 추가한 후 커밋한다.
- 변경사항 또는 커밋이 완료되면, 수정사항을 업스트림 저장소로 푸시한다.
포킹 후 Git Repo 복제
- 기여하고싶은 upstream 저장소를 포크한다.
- 내 저장소에서 로컬 저장소로 복제한다.
- 복제후 로컬 자장소에서 소스파일을 편집하여 버그를 수정하거나 기능을 추가한 후 커밋한다.
- 변경사항 또는 커밋이 완료되면, 수정사항을 내 저장소로 푸시한다.
- 저장소 소유자에게 변경 사항을 upstream 저장소에 병합하라고 요청을 보낸다.
정리하자면, fork와 clone의 차이점은 아래와 같다.
fork한 저장소를 clone하는 것은 원본 리포지토리를 내 GitHub 계정에 복사하고 그 복사본을 내 로컬리포지토리에 복사한다.
하지만, 원본 리포지토리를 clone하는 것은 내 GitHub 계정에 복사하지 않고, 바로 내 로컬 리포지토리에 복사한다.
따라서, 둘의 차이는 내 GitHub계정에 복사본의 존재유무이다.
또한, fork한 저장소 같은 경우에는 upstream 저장소에 변경사항을 반영하려면 upstream 저장소의 소유주에 허락을 받아야하지만, 원래 저장소를 clone하는 것은 허락을 받지 않아도 된다.
이상입니다~!
출처 및 참고
What is the Difference between Git Clone and Git Fork? (toolsqa.com)
'Git' 카테고리의 다른 글
git Vim으로 commit 메시지 작성하기 (0) | 2023.04.26 |
---|---|
특정 파일만 커밋하기! (0) | 2023.03.08 |
git 프로젝트의 단계와 3가지 파일의 상태 (0) | 2022.10.26 |
LF will be replaced by CRLF [Git 경고 메세지] 해결방안 (0) | 2022.10.26 |
git 시작하기 (0) | 2022.10.26 |