오픈소스, 프로젝트 등 다른 사람이 만든 레포 기반으로 작업해야할 때는 여러가지 방식이 있다.
그중 하나가 Fork 방식이다.
Fork 방식은 쉽게 말해
다른 사람의 레포를 나의 레포로 복사해와서 여러가지 작업을 마친 뒤
Pull request 를 올려서 merge 를 하는 방식이다.
(물론 그사이에 다른 사람이 작업할 수도 있으니 중간중간 최신화도 시켜주면서 말이다)
1. 깃헙 레포 페이지를 들어가보면 Fork 라는 버튼이 보인다. 저 버튼을 눌러보자
2. 카피 레포(fork) 를 만들어주는 페이지로 들어가진다. 이렇게 레포를 만들어주자
3. 이제는 이 카피 레포를 원격 레포와 동기화 시켜주자
일단 오리지널 레포를 upstream 이라는 이름의 원격 저장소로 추가해주었다.
$ git remote add upstream https://github.com/포크레포주인의깃헙아이디/레포이름.git
혹시 url 을 잘못지정해줬다면 set-url 옵션으로 변경해주자!
$ git add remote set-url upstream https://github.com/...(정정할 주소)..
4. 원격 레포는 항상 업데이트 되고 있으니, 최신화 시켜주자
fetch 의 개념은 데이터를 받아와 최신화 시켜주는 것이다.
git fetch upstream 은 upstream (원격 저장소, 즉 오리지널 레포) 의 브랜치들을 최신화 시켜주는 명령어이다.
아래의 예시를 살펴보자면 upstream 저장소의 main이라는 브랜치의 내용이 최신화되었다.
$ git fetch upstream
$ From https://github.com/내아이디/포크한레포이름
6b40512..12bc612 main -> upstream/main
** 최신화 하면서 받아온 데이터들( 커밋, 태그, 브랜치 등등)은 .git 디렉터리에 저장되고, upstream/main 의 브랜치 형태로 브랜치 정보가 저장된다.
5. 이제 마음놓고 내가 로컬 레포에서 작업한 코드들을 원격 브랜치에 합쳐주자
이렇게 되면 레포주인이 업로드한 upstream/main 의 코드가 → → → 나의 로컬 main 코드로 합쳐지게 된다
$ git checkout main # 메인브랜치로 온후
$ git merge upstream/main # upstream 원격저장소의 main 브랜치와 병합
6 나의 원격 저장소인 origin/main 으로 push 해준다
$ git push origin
7. 나의 깃헙 레포 페이지로 돌아가 pull request 메뉴를 눌러보자.
방금 따근따근하게 푸시된 origin/main 의 코드를 레포주인장의 main 으로 머지할 수 있는 리퀘스트를 보낼 수 있을 것이다 :)
'Git' 카테고리의 다른 글
Git - Vite와 React, pnpm 으로 github page 배포하기 (5) | 2024.08.25 |
---|---|
Git - Obsidian 메모앱과 깃헙 연동하기 (0) | 2024.08.13 |
Git - 실행오류 this exceeds GitHub's file size limit of 100.00 MB (0) | 2024.08.07 |
Git - Remote Origin Already Exists 에러 해결하기 (3) | 2023.08.09 |
Git(39) 로컬 브랜치 덮어쓰기 (0) | 2023.02.09 |
댓글