* master 브랜치 기반의 PR(pull request)
먼저 github 원격 저장소를 내 저장소로 fork한다.
내 github 저장소를 origin, 원격 githubub 저장소를 real이라고 지정한다.
# git clone https://github.com/samuel-kim/optools.git
# git remote add real https://github.com/cassandra/optools.git
# git remote -v
origin https://github.com/samuel-kim/optools.git (fetch)
origin https://github.com/samuel-kim/optools.git (push)
real https://github.com/cassandra/optools.git (fetch)
real https://github.com/cassandra/optools.git (push)
내 저장소의 master 브랜치를 기반으로 새로운 브랜치를 만든다.
git checkout -b fix_errata
코드 수정하고 푸시한다.
git add .
git commit -m 'fix errata'
git push origin
원격 github 웹 페이지에 접속하면 "Compare & pull reqeust"이 보인다.
어느 브랜치에 PR할지 결정한다.
PR이 완료되면, master 브랜치로 이동한다.
git checkout master
기존 브랜치를 삭제한다.
git branch -d fix_errata
리모트 브랜치를 삭제한다.
git push origin --delete fix_errata
real의 master를 origin의 master에 merge한다. 즉 원격 github 저장소의 master에 머징된 내용(새로워짐)을 내 저장소의 master(구버전)로 병합한다.
현재 origin master로 되어 있다. origin master(내꺼)를 기준으로 원본 real의 master(기준)의 내용을 rebase한다.
$ git branch -l
* master
$ git rebase real/master
origin master에 push한다.
git push origin origin/master
이미 origin 저장소의 브랜치로 checkout된 상태에서
저 멀리 real 은 코드 푸시가 다량으로 일어날 있고, 시간이 지나면서 내 저장소인 origin과의 소스 커밋 차이가 발생한다.
그 때는 브랜치에서 다음 커맨드를 실행해 브랜치 상황을 살펴 본다.
git pull real
만약 master만 real 브랜치의 새로운 버전으로 다운받고 싶다면 다음 커맨드를 실행한다.
git pull real master
그리고 push하면 동일하게 맞춰진다.
git push
'etc tools' 카테고리의 다른 글
[git] git reset hard (0) | 2017.09.01 |
---|---|
항상 최신 데이터 보여주기 : gulp + livereload 조합 (0) | 2017.08.28 |
github page 웹으로 생성하기 (0) | 2017.08.17 |
[influxdb] influxdb clustering은 무료 버전? (0) | 2017.03.23 |
[git] git 저장소 변경하기 (0) | 2017.03.16 |