[Git]Fork한 repository 최신으로 동기화하기
Fork한 repository를 최신으로 동기화시켜할 때가 있습니다.
- 오픈소스에 단발성이 아닌 지속적으로 contribution 하려 할 때
- 수정해서 사용하기 위해 fork 해온 원본 repository에서 업데이트 된 부분을 받아올때.
- 기타 등등
이를 위해 먼저 원본 repository를 remote repository로 추가해야합니다. Fork 해온 repository 에서 remote repository를 확인하면 아래와 같이 나옵니다.
$ git remote -v
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
여기에 동기화해오고 싶은 원본 repository를 upstream 이라는 이름으로 추가합니다.
$ git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
upstream repository가 제대로 추가 되었는지 확인합니다.
$ git remote -v
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch)
upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)
이제 upstream repositoy로 최신 업데이트를 가져올 차례입니다. Git의 fetch 명령어를 통해서 upstream repository의 내용을 불러옵니다.
$ git fetch upstream
remote: Counting objects: 75, done.
remote: Compressing objects: 100% (53/53), done.
remote: Total 62 (delta 27), reused 44 (delta 9)
Unpacking objects: 100% (62/62), done.
From https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY
* [new branch] master -> upstream/master
upstream repository의 master branch로 부터 나의 local master branch로 merge 합니다.
$ git checkout master
Switched to branch 'master'
$ git merge upstream/master
Updating a422352..5fdff0f
Fast-forward
README | 9 -------
README.md | 7 ++++++
2 files changed, 7 insertions(+), 9 deletions(-)
delete mode 100644 README
create mode 100644 README.md
이 과정은 local repository에서 일어난 것이기 때문에 push를 통해 remote repository에도 적용시켜주면 완료됩니다~~!!
$git push origin master