GitHub로 프로젝트 운영하기
-시스템소프트웨어 연구실 이건희
목차
-깃허브란?
-Repository 활용하기
-branches, releases
-깃허브 프로젝트 문서화
깃허브란?
• 깃(Git)을 사용하는 프로젝트를 지원하는 웹호스팅 서비스
• 다른 사람들과의 협업을 매우 용이하게 해줌
Repository 활용하기
Issue , Pull requests
• Issue 카테고리는 왜 사용하는가요?
• 버그를 기록하거나 요구사항을 전달할려고 사용
• Pull requests 카테고리는 왜 사용하는가요?
• 현재 진행중인 작업이 무엇인지 알게해줌. • 수정사항을 Merge 시킬 때 사용.
Pull requests로 넣은 수정사항이 Merge됨에 따라 Contributor가 될 수 있습니다!
branches, releases
branches
• 테스트 해보거나 새로운 기능을 개발하기 위해 사용하는 독립적인 commit
• Master branch : 기본 branch이자, 최종적으로 마무리 되는 branch
깃허브 문서화
README
• 해당 프로젝트의 개요나 설명, 설치법에 대해서 설명
• ‘README.md’ 파일을 인식
README’s Labels
• Badge images • Custom badge
https://shields.io/
README’s Labels
• Travis CI
• Continuous Integration : 푸시할 때 자동화된 빌드 및 테스트가 실 행되고 소프트웨어 품질을 향상시키는 개발 방식
• https://travis-ci.org/
Issue & Pull requests Template
• Maintainer에게 좀 더 정확하 게 의견을 전달하기 위해 만듬
• Insights > Comminuty 에서 추가 가능
LICENSE
네이버 오픈소스 가이드 https://naver.github.io/OpenSourceGuide/book/
그 외의 Community profile
• Code of conduct
• Contributing guidelines
그 외에 프로젝트 관리에 도움되는 것
OpenHub 어플리케이션
Git Bash (Git bash 사용법 : http://gbsb.tistory.com/10)
GitHub Desktop
참고
• 네이버 오픈소스 가이드 https://naver.github.io/OpenSourceGuide/book/
• 실제로 사용한 프로젝트 https://github.com/kuj0210/IoT-Pet-Home-System
2018.07.09 판도라큐브 세미나
제작자: 프로그래밍 파트 이지수
코멘트: 질문 시간에서 질문을 못 해드린 부분은 제가 후에 조사해서 PPT에 추가했습니다.
비고: 없음
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
GitHub로 프로젝트 운영하기
-시스템소프트웨어 연구실 이건희
목차
-깃허브란?
-Repository 활용하기
-branches, releases
-깃허브 프로젝트 문서화
깃허브란?
• 깃(Git)을 사용하는 프로젝트를 지원하는 웹호스팅 서비스
• 다른 사람들과의 협업을 매우 용이하게 해줌
Repository 활용하기
Issue , Pull requests
• Issue 카테고리는 왜 사용하는가요?
• 버그를 기록하거나 요구사항을 전달할려고 사용
• Pull requests 카테고리는 왜 사용하는가요?
• 현재 진행중인 작업이 무엇인지 알게해줌. • 수정사항을 Merge 시킬 때 사용.
Pull requests로 넣은 수정사항이 Merge됨에 따라 Contributor가 될 수 있습니다!
branches, releases
branches
• 테스트 해보거나 새로운 기능을 개발하기 위해 사용하는 독립적인 commit
• Master branch : 기본 branch이자, 최종적으로 마무리 되는 branch
깃허브 문서화
README
• 해당 프로젝트의 개요나 설명, 설치법에 대해서 설명
• ‘README.md’ 파일을 인식
README’s Labels
• Badge images • Custom badge
https://shields.io/
README’s Labels
• Travis CI
• Continuous Integration : 푸시할 때 자동화된 빌드 및 테스트가 실 행되고 소프트웨어 품질을 향상시키는 개발 방식
• https://travis-ci.org/
Issue & Pull requests Template
• Maintainer에게 좀 더 정확하 게 의견을 전달하기 위해 만듬
• Insights > Comminuty 에서 추가 가능
LICENSE
네이버 오픈소스 가이드 https://naver.github.io/OpenSourceGuide/book/
그 외의 Community profile
• Code of conduct
• Contributing guidelines
그 외에 프로젝트 관리에 도움되는 것
OpenHub 어플리케이션
Git Bash (Git bash 사용법 : http://gbsb.tistory.com/10)
GitHub Desktop
참고
• 네이버 오픈소스 가이드 https://naver.github.io/OpenSourceGuide/book/
• 실제로 사용한 프로젝트 https://github.com/kuj0210/IoT-Pet-Home-System
2018.07.09 판도라큐브 세미나
제작자: 프로그래밍 파트 이지수
코멘트: 질문 시간에서 질문을 못 해드린 부분은 제가 후에 조사해서 PPT에 추가했습니다.
비고: 없음
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
2018년 서울시 앱 공모전 (URL: https://mplatform.seoul.go.kr )에서 GitHub 설명을 위한 자료입니다. 이전 https://www.slideshare.net/ianychoi/git-github-46020592 자료에 모바일 앱 개발 환경 및 GitHub Desktop 프로그램에 대한 부분을 추가하였습니다.
2018년 서울시 앱 공모전 (URL: https://mplatform.seoul.go.kr )에서 GitHub 설명을 위한 자료입니다. 이전 https://www.slideshare.net/ianychoi/git-github-46020592 자료에 모바일 앱 개발 환경 및 GitHub Desktop 프로그램에 대한 부분을 추가하였습니다.
[17.02.09] Github introduction (Korean Version)Ildoo Kim
Git 혹은 소스코드 형상관리를 아예 모르는 사람을 대상으로 작성한 Starter Guide입니다. 팀에 새로운 사람이 Join하는 등의 경우에 세미나 자료로 활용합니다.
형상관리/git 개념과 command line 혹은 source tree를 활용한 기본적인 사용 방법에 대해 소개합니다.
<팀을>이라는 책을 많이 참고하였습니다.
Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+githubJunyoung Lee
OSS 포럼 개발자 교육 'Git/GitHub 입문하기 - 부산'에서 Git 실습에서 사용한 자료입니다. (http://onoffmix.com/event/69536)
지난 번 자료(http://www.slideshare.net/ssusercef361/git-github-62006866)는 구름 IDE를 활용해서 진행했고, 이번 자료는 Git 클라이언트를 설치해서 진행했습니다. GitHub 가입과 Git 클라이언트 설치는 강의 전 준비(http://www.slideshare.net/ssusercef361/github-git)를 참고해주세요.
1. Git과 Github
- 버전 관리?
- Git은 어쩌다 세상에 나왔나?
- Github?
2. Git 시작하기 - 실습
- 실습 준비 : Github, Goorm IDE 가입하기
- 리눅스 명령어와 친해지기
- Git 필수 개념 집고 넘어가기
- Step by Step Git 명령어 실습 (커밋, 브랜치, 원격 저장소 등)
- 옆자리 분과 Fork하고, Pull Request
3. Git과 Github 맛깔나게 활용하기
- Github의 협업 기능 살펴보기
- Github Page
- Gitbook
4. 있어보이는 Git 활용
- .git 디렉토리 살펴보기
- Git Branch 전략
- Commit Message 활용
특정 폰트가 SlideShare.net에서 보이지 않는 관계로 모두 나눔고딕으로 통일했습니다.
Jenkins X - automated CI/CD solution for cloud native applications on KubernetesTed Won
Let's have a look at CI/CD best practices to help developers on the cloud platform Kubernetes, which is becoming an industry standard, as we move to the era of cloud native application development, which is about to come.
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() 사용하지 말 것
● 코드 수정 없는 단위 테스트 코드 컨트리뷰션도 좋음
● 문서 오타 수정 컨트리뷰션도 역시 좋음