[Git] git fork 후 동기화

2023. 4. 5. 16:09GitHub/Git사용방법

728x90

들어가기 전

본인이 다른 저장소를 fork해왔을 때,  upstream은 일반적으로 다른 저장소(원본 저장소)를 의미함.

origin : 본인이 fork해온 저장소

upstream :  다른 저장소(원본 저장소)

 

+ pull request 하는 방법 참고

https://zincod.tistory.com/299

 

실습내용

fork 해둔 원본 저장소가 존재하는데, 해당 저장소는 다른 팀원들도 작업하는 저장소이므로 변경사항이 존재하여

해당 원본 저장소를 내 로컬 저장소에 동기화 


1. 원본 저장소 upstream remote

$ git remote add upstream [원본저장소 URL]

# remote 확인
$ git remote -v
# 상세
MacBook-Pro:docker-pro-wanted $ git remote add upstream https://github.com/drum-grammer/docker-pro-wanted.git
MacBook-Pro:docker-pro-wanted $ git remote -v
origin	https://github.com/zincoder/docker-pro-wanted.git (fetch)
origin	https://github.com/zincoder/docker-pro-wanted.git (push)
upstream	https://github.com/drum-grammer/docker-pro-wanted.git (fetch)
upstream	https://github.com/drum-grammer/docker-pro-wanted.git (push)
MacBook-Pro:docker-pro-wanted $

 

2. origin 저장소 (본인이 fork해온 저장소)에서 fetch를 진행 

내가 작업한 브랜치가 아닌 main 브랜치에는 내가 작업한게 적용이 되어있지 않으니 origin 저장소에서 fetch 진행

$ git fetch upstream
# 상세
MacBook-Pro:wanted_backend $ git fetch upstream
remote: Enumerating objects: 1316, done.
remote: Counting objects: 100% (295/295), done.
remote: Compressing objects: 100% (39/39), done.
remote: Total 1316 (delta 278), reused 260 (delta 255), pack-reused 1021
Receiving objects: 100% (1316/1316), 17.21 MiB | 5.73 MiB/s, done.
Resolving deltas: 100% (578/578), done.
From https://github.com/drum-grammer/docker-pro-wanted
 * [new branch]      cli        -> upstream/cli
 * [new branch]      main       -> upstream/main

 

3. upstream 원본 저장소와 나의 main branch 를 merge

$ git merge upstream/main
# 상세
MacBook-Pro:docker-pro-wanted $ git merge upstream/main
Merge made by the 'recursive' strategy.
 .gitignore                                                    |  13 +++++++--
 lecture-material/first/Dockerfile                             |   3 ++
 lecture-material/first/cli.md                                 |  93 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 lecture-material/first/index.html                             |   8 ++++++
 ...

 

4. 로컬 저장소에 반영 내용 확인


+  내 Git 저장소에서 fork 동기화 (웹 UI에서 fork 동기화) 

내 Git 저장소 접속 - 우측 'Sync fork' 버튼 클릭

 

 

참고1 : https://docs.github.com/ko/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

참고2 : https://velog.io/@modsiw/Git-git-branch-%EC%A0%84%EB%9E%B5-fork-upstream-origin-%ED%8C%80%ED%94%8C%ED%95%A0%EB%95%8C

728x90