gitub fork 후 원본과 sync 맞추기

프론티어2015-02-08 16:04:45886840git, github, fork, sync, upstream pull, push, 추천

github 에서 fork 한 project 는 pull request 를 통해서 원본에 반영할 수 있습니다만,
여러가지 이유로 pull request 하지 못하거나, 거절당한 경우 원본과 별개로 유지될 수도 있습니다.

이때 원본쪽의 변경사항을 sync 받아올 필요가 있겠죠.

간단한 Sample 을 통해서 이런 과정을 정리해 봅니다.

가정합니다.

1. fork 실행

github fork

위의 원본에서 fork 버튼을 누르면 아래와 같이 fork 본이 생성됩니다.

github fork 결과

2. fork 본을 PC 로 git clone

git clone git@github.com:fronteer-kr/terraform.git

추후 push 편의를 위해 SSH clone URL 을 사용했습니다.

3. fork 원본을 remote 에 등록 (통상적으로 upstream 으로)

git clone 까지만 한 상태에서

git remote -v

하면 아래와 같이 나옵니다.
remote1

여기서 fork 한 원본은 remote 에 추가 합니다. (원본은 readonly 이므로 HTTPS clone URL 을 사용)

git remote add upstream https://github.com/sintaxi/terraform.git

다시 git remote -v 하면 아래와 같이 remote 가 추가된 내용이 나옵니다.
remote2

remote 가 origin 과 upstream 2개다 되는거죠.

4. PC - fork 본 간의 작업

clone 한 PC 와 fork 본 간에는 commit & push 등 일반적인 git 작업을 진행하면 됩니다.

그러다가 fork 한 원본의 변경사항과 sync 를 맞추어야할 상황이 발생하면...

5. pull 원본(upstream)

upstream 이 변경내용을 PC 로 가져옵니다. (pull)

git pull upstream master

충돌된 내용이 있거나 하면 정리해야겠죠.
pull upstream

6. push fork본 (origin)

git push origin master

이러면 fork 본에 merge 된 내용이 push 됩니다.
:push origin