ETC/1. Today I Learned

[Git 기초] Fork & Clone, Fetch & Pull 배워보기

montmer27 2025. 12. 11. 22:36

Fork & Clone

포크와 클론은 코드를 복사한다는 점에서 비슷해 초보 개발자들(본인포함)이 그 차이를 잘 모르는 경우가 많다. 하지만 이 둘은 엄연히 목적이 다르다.

 

1. Fork

둘 다 다른 이의 코드를 복제하여 내 로컬 저장소로 가져오는 것이지만, 포크의 목적은 내가 복제해 온 코드에 내 수정사항을 반영하여 다시 합치는 데에 목적이 있다. 따라서 원격 저장소 내 forked repository를 통해 포크 대상 코드와 지속적으로 연결되어 있다(중간에 코드 주인이나 다른 사람의 PR이 반영될 수도 있으므로). 만일 중간에 다른 이에 의해 코드가 업데이트되더라도 fetch/rebase의 과정을 통해 최신 버전으로 계속 수정할 수 있다. 

Fork 시 복제된 코드는 PR을 날리기 전까지는 나의 forked repository에서 관리되며, PR이 승인되면 원본 코드에 Merge된다.

 

2. Clone

코드를 단순히 복제하는 기능이다. 원격 저장소는 별도의 저장소가 아닌 원본이 있는 저장소 그대로이며, 권한이 없다면 push가 불가능하다. 무엇보다 원본 저장소와 연결되어 있지 않기 때문에, 저장소의 커밋 등의 로그를 보지 못한다. 

 

Pull & Fetch

3. Fetch

원격 레포지토리에서 최신 커밋을 임시 브랜치(이름없음)로 내려받기까지만 진행. 개발자가 변경 사항을 확인하며 수동으로 병합 진행을 원할 경우 유리. 이 때 임시 브랜치는 FETCH_HEAD 이름으로 체크아웃이 가능

 

4. Pull

원격 레포지토리부터 최신 커밋들을 내려 받아서, 현재 로컬 브랜치와 자동으로 병합을 진행

 

출처

https://velog.io/@msung99/push-%EB%B8%8C%EB%9E%9C%EC%B9%98-%EA%B9%83%ED%94%8C%EB%A1%9C%EC%9A%B0-pull

 

[Git] fetch 와 Pull 의 차이점은?

이번 포스팅에서는 원격 저장소에서 커밋들을 로컬 저장소로 내려받을 때 사용하는 pull 과 fetch 명령의 차이점을 알아보겠습니다.

velog.io

 

https://velog.io/@imacoolgirlyo/Git-fork%EC%99%80-clone-%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90-5sjuhwfzgp

 

Git fork와 clone 의 차이점

Forking a Repository - How to Use Git and GitHub 내용을 참고했습니다. fork fork는 다른 사람의 Github repository에서 내가 어떤 부분을 수정하거나 추가 기능을 넣고 싶을 때 해당 respository를 내 Github repository로

velog.io