====== Github Collaboration ======
* Github으로 OpenSource 프로젝트에 기여하기
* [[http://net.tutsplus.com/tutorials/tools-and-tips/how-to-collaborate-on-github/|How to callaborate on github]]
===== Forking =====
* Github에서 원하는 프로젝트를 포크하여 자신의 프로젝트로 가져온다.
===== Cloning =====
* 자신의 github에 포킹한 프로젝트를 로컬로 클론한다.
===== Upstream remote 추가 =====
cd opensourceproject
git remote add upstream git@github.com:/원래/프로젝트.git
===== Upstream을 내 master에 받아오기 =====
# Upstream 프로젝트 머지
git fetch upstream
git merge upstream/master
===== Topic 브랜치를 따라 =====
자기가 작업하고 싶은 사안에 대한 Topic branch를 딴다. 그리고 작업을 하고 커밋한다.
여기서 345는 github 이슈번호 예제이다.
git checkout -b enhancement_345
===== 커밋하기 =====
커밋할 때는 ''fixes #이슈번호'' 형태로 만들면 Github 이슈에 적용된다. [[https://help.github.com/articles/closing-issues-via-commit-messages|Closing issues via commit messages]]
git commit -am "Adding a header; fixes #3"
===== 자신의 포킹한 프로젝트로 Push한다 =====
git push origin enhancement_345
===== Pull Request =====
* Githup의 포킹한 프로젝트 페이지로 간다.
* "Your recently pushed branches"가 보인다면 **"Compare and Pull Request"**를 선택한다.
* 그렇지 않다면, 원하는 브랜치를 선택하고, **"Pull Request"** 혹은 "Compare"를 누른다.
* **이때 비교 대상이 되는 브랜치가 정확히 Pull Request를 보내고 싶은 브랜치인지 확인이 필요하다.**
===== 중요! =====
* 예의를 지켜라.
* 원래 프로젝트의 기준을 존중하라.
* 내 Pull Request를 반영할지 여부는 관리자의 재량권이다. 무조건 반영 될 것이라고 착각하지 말라.