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
[17.02.09] Github introduction (Korean Version)Ildoo Kim
Git 혹은 소스코드 형상관리를 아예 모르는 사람을 대상으로 작성한 Starter Guide입니다. 팀에 새로운 사람이 Join하는 등의 경우에 세미나 자료로 활용합니다.
형상관리/git 개념과 command line 혹은 source tree를 활용한 기본적인 사용 방법에 대해 소개합니다.
<팀을>이라는 책을 많이 참고하였습니다.
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
[17.02.09] Github introduction (Korean Version)Ildoo Kim
Git 혹은 소스코드 형상관리를 아예 모르는 사람을 대상으로 작성한 Starter Guide입니다. 팀에 새로운 사람이 Join하는 등의 경우에 세미나 자료로 활용합니다.
형상관리/git 개념과 command line 혹은 source tree를 활용한 기본적인 사용 방법에 대해 소개합니다.
<팀을>이라는 책을 많이 참고하였습니다.
Git 커멘드와 있으면 편리한 Alias/Funciton by KangDroidExcelcon
세션 소개
우리는 Git을 어떻게 사용하고 있나요? 자주 마주치는 상황에서 Git Command를 더 잘 쓸 수 있는 방법과 ProTip! 그리고 있으면 편리한 Alias를 발표를 통해 나누고자 합니다.
발표자 소개
이것저것 많이 해보는 주니어 백엔드/DevOps 개발자. 향긋한 커피와 빵을 좋아합니다.
저번 시간에 CI/CD에 대해서 간단하게 공부해봤으니 이번에는 툴 하나를 정해서 사용해보려고 합니다.
Jenkins, AWS Codepipeline 등 유명한 CI/CD 툴이 많지만 이번에는 github action을 사용해보려고 해요!
전세계적으로 많이 사용되는 github에서 지원하는 CI/CD 기능으로 진행 중인 프로젝트에 아주 간단하게 적용할 수 있는데 같이 공부해봐요!
4. Git을 사용하는 이유
Version Control System
(버전 관리 시스템)
기능 개선 / 버그 수정 / SW 커스터마이징
의미 있는 변화 저장
1. 프로젝트의 변경관리
코드관리
5. Git을 사용하는 이유
Version Control System
(버전 관리 시스템)
기능 개선 / 버그 수정 / SW 커스터마이징
의미 있는 변화 저장
1. 프로젝트의 변경관리
코드관리
2. 프로젝트의 버전관리
되돌아가기
6. Git을 사용하는 이유
Version Control System
(버전 관리 시스템)
기능 개선 / 버그 수정 / SW 커스터마이징
의미 있는 변화 저장
1. 프로젝트의 변경관리
코드관리
2. 프로젝트의 버전관리
되돌아가기
3. 프로젝트의 협업
팀 프로젝트
현주
민정
민정
주혜
민정
예림
예림
주혜
현주
현주
7. Git을 사용하는 이유
Version Control System
(버전 관리 시스템)
기능 개선 / 버그 수정 / SW 커스터마이징
의미 있는 변화 저장
1. 프로젝트의 변경관리
코드관리
2. 프로젝트의 버전관리
되돌아가기
3. 프로젝트의 협업
팀 프로젝트
현주
민정
민정
주혜
민정
예림
예림
주혜
현주
현주
8. 버전관리 tool
Git을 사용하는 Project를 가시적으로
보기 위한 소스 공유 Service
https://github.com/https://git-scm.com/
9. Github 이용하기 : 저장소 만들기 (Repository)
Create New Repository 이름 생성
내가 공유하고 싶은 폴더를 web에 이 이름으로 지정!!
10. Github 이용하기 : 저장소 만들기 (Repository)
git init
git add .
git commit –m “[commit 메시지]”
git remote add origin [내 github repository 주소]
git push –u origin master
내가 VCS를 원하는 폴더를 지정할 때 위 커맨드 입력
12. Git / Github 연동하기
- Starting a working area
- 현재 작업장에 작업을 진행하겠다는 것을 git에게 알려줘!
- 이 명령어 입력 전까지는 일반 폴더! git과 관계가 없다.
- git init 이후에야 추가적인 깃 명령어들을 줄 수 있다.
$ git init
13. - commit의 대기상태
- 내가 commit하고 싶은, 버전에 반영하고 싶은 파일만! Add
- commit 전에 add가 우선!
Git status
내가 이번 버전에 저장할 (commit) 파일들의
리스트를 보여준다.
Git / Github 연동하기 $ git add .
14. - add 파일(저장하고 싶은 파일)들의 변경사항을
“session 파일 올리기”란 하나의 버전으로 생성
- 기억하고 싶은 버전에 대한 message를 함께 적는다
- 스냅 샷!
Git / Github 연동하기 $ git commit – m “[commit 메세지]”
15. - 현재 작업하는 workspace를 연결한다!
- 나의 github repository에!
- 그 github repository에 origin이란 별명을 부여!
내 workspace와 주로 동기화하는 메인 repository를
관습적으로 origin이라고 부른다
Git / Github 연동하기 $ git remote add origin [내 repository 주소]
16. - 내가 아까 remote한 repository는 origin!
- origin에 master 브랜치 내용을 업로드!
- 즉 이 폴더에서 내가 commit한 새 버전을
나의 repository에 업로드
master 브랜치는 보통 default 브랜치
Git / Github 연동하기 $ git push –u origin master
17. add와 commit의 차이
A 파일
AAAA
B 파일
BBBB
C 파일
CCCC
Commit 1 : “파일 3개 생성"
A 파일
A111
B 파일
B111
C 파일
CCCC
A파일과 B파일을 수정했는데
생각해보니 A파일만 수정했으면 됐어!!
18. add와 commit의 차이
A 파일
A111
B 파일
B111
C 파일
CCCC
A 파일만 add하기
$ add A 파일
A 파일
A111
B 파일
BBBB
C 파일
CCCC
$ commit –m “A 파일 수정”
Commit 2 : “A 파일 수정"
19. add와 commit의 차이
A 파일
AAAA
B 파일
BBBB
C 파일
CCCC
Commit 1 : “파일 3개 생성"
A 파일
A111
B 파일
BBBB
C 파일
CCCC
Commit 2 : “A 파일 수정"
20. add와 commit
큰 작업에 따라 내가 add 시키는 파일에 따라서 버전을 분리할 수 있다.
remote와 push
내가 commit한 내용 (내가 로컬에서 버전관리를 한 내용)을
github에도 올릴래!!
21. https://git-scm.com/doc
유용한 git 명령어
$ git : 깃 명령어 도움말
$ git log : 내가 local 환경에서 이 폴더에 commit한 내역 살펴보기
$ git log –p : commit 사이 달라진 내용
$ git log -2 : 최근 2개의 commit만
22. git 커맨드가 어렵다면 ? Source tree
git add commit push remote 설정 등을 모두 button으로 해결할 수 있다.
내가 커밋한 내역을 그래프로 볼 수 있다 : 협업시 누가 어떤 브랜치를 팠는지 등을 알 수 있다.
https://www.sourcetreeapp.com/
23. 사실 몇 십분으로 전부 배우기는 어려워요
생활코딩 git강의나 Git을 사용하시다가
어려움이 있어서 질문 해주시면 바로 알려드릴께요!!!