6. Git & Github 와 친해지기
● github 계정 생성하기
● github 에서 프로젝트 & 소스코드 검색
● 프로젝트 포킹해서 맘데로 고쳐보기
● https://guides.github.com
● git 레파지토리 생성하고 프로젝트 만들기
● https://guides.github.com/activities/hello-world/
● https://guides.github.com/pdfs/githubflow-online.pdf
7.
8. 시작하기
● JIRA 이슈 생성하기
○ 이슈 아이디 확보
○ 상세 내용 기술
● 업스트림 프로젝트 레파지토리로 이동
○ https://github.com/jboss-modules/jboss-modules
● 개인 레파지토리로 포킹
● 로컬에 프로젝트 클론닝
○ git clone git@github.com:tedwon/jboss-modules.git
● 업스트림 레파지토리 추가
○ git remote add upstream git@github.com:jboss-modules/jboss-modules.git
12. 시작하기
● 업스트림 최신 변경 사항 master 브랜치로 가져오기
○ git fetch upstream
○ git reset --hard upstream/master
○ git push -u origin master
● 새로운 PR 브랜치 생성
○ 브랜치명은 이슈 아이디로 (ex: WFCORE-1563)
○ git checkout -b WFCORE-1563
● 작업 전 코드 무결성 확인
○ 빌드 mvn clean install -DskipTests
○ 단위 테스트 전체 수행 및 확인 mvn test
● 단위 테스트 코드 작성
● 코드 작성
13. 코드 작업
● 코드 변경 사항 확인
○ 코드 스타일 준수
○ 변경 최소화
○ 중복 유무 확인
● 코드 인스펙션 수행
● 변경 후 단위 테스트 수행 결과 확인
● 리뷰 받기위한 철저한 준비
● 커밋
○ 메세지에 이슈 제목과 링크만 작성
■ WFCORE-1563 Fix replace deployment fail on CLI batch mode
■ https://issues.jboss.org/browse/WFCORE-1563
● 커밋은 한개로 만들 것
● PR 브랜치 푸쉬
○ git push -u origin WFCORE-1563
14. ● Pull Request 생성하기
○ “base fork” 레파지토리와 “base” 브랜치 확인
○ 적용될 코드 변경 사항 최종 확인!
● 코드 리뷰 수행 및 컨버세이션
○ by Owner
○ by Maintainers and Collaborators
○ 논리적으로 변경사항에 대한 이해 및 설득
○ Ex: https://github.com/netty/netty/pull/4607
● 코드 수정 사항 반영 및 다시 푸쉬
○ 커밋은 한개로 만들 것 rebase, squash, cherry-pick
○ git rebase -i head~2
● 머지(Merged)!!
● 끝
코드 리뷰
15. Tips
● 코드 작업은 맘껏 push는 최소 변경분만
● Gist 활용하기
● IRC 사용하기
○ http://limechat.net/mac/
○ irc://irc.freenode.net/infinispan
● 메일링 리스트 가입
● 단위 테스트 코드에서 Thread.sleep() 사용하지 말 것
● 코드 수정 없는 단위 테스트 코드 컨트리뷰션도 좋음
● 문서 오타 수정 컨트리뷰션도 역시 좋음