Github의 프로젝트를 직접 다운받아 수정 후 upstream에 기여하는 방법에 대한 Tip 정리
SSH key 등록
- 자신이 개발하는 툴이나 IDE등에서 SSH key를 쓰고 있다면 Github의 Setting에서 SSH key를 등록하자
- https://github.com/settings/ssh
저장소 생성
- 대부분의 Github 프로젝트는 upstream으로부터 자기 계정의 fork 하여 개발 후 upstream에 merge를 요청하게 된다.
- 이를 pull request 라고 한다.
- Github 프로젝트에서 우측 상단에 Fork버튼을 눌러 프로젝트 저장소를 생성한다.
개발
- fork하여 생성된 저장수에서 개발 및 수정을 하고 commit & push를 자유롭게 할 수 있다.
- upstream에서 받아온 merge commit과 자신의 commit이 섞여 있어서 보기에 안좋을 때는 git rebase를 하도록 한다.
- git rebase
- 이전에 commit 한 내용을 수정하려면, 내용을 수정한뒤 다음 명령어를 사용하여 중복된 수정내용을 하나의 commit으로 합칠 수 있다.
- git commit --amend
- 만약 commit 한 내용을 이미 push 하였다면 다음 명령어를 사용하여 이전의 push에 강제로 합칠 수 있다.
- git push --force
Upstream 프로젝트의 변경 사항을 받아오기
- Upstream의 변경 사항을 fork받은 자신의 프로젝트에 반영하려면 remote에 upstream 설정을 해 놓아야 한다.
- remote 설정
// remote에 upstream 설정 등록
// upstreamname 및 projectname 설정 필요
git remote add upstream git://github.com/upstreamname/projectname.git
// upstream의 반영사항을 받아온다.
git fetch upstream
// upstream의 반영사항으로 rebase
git rebase upstream/master
// git push
git push -f master
// 최신내용을 현재 작업하고 있는 브랜치에 merge
git merge upstream/master
내 변경 사항을 Upstream에 반영하기
- 내 변경사항이 모두 push되었으면 원래 프로젝트로 가서 Pull requests 버튼을 눌러 나의 변경사항이 원본프로젝트에 반영되도록 요청한다.
Reference
'Tip' 카테고리의 다른 글
[Docker] 기본 명령어 (0) | 2017.11.02 |
---|---|
[자막] 구글 번역기를 통한 외국어 자막 번역 (3) | 2017.11.02 |
HDMI 에서 영상만 출력하고, Audio 는 기본 스피커 출력을 사용하고 싶을 경우 (0) | 2015.06.15 |
공인 IP Address 확인 방법 (0) | 2015.06.15 |
[SourceCleanUp] 소스 코드 포멧팅 툴 (0) | 2014.10.13 |