2022. 4. 14. 17:48ㆍ강의 내용 정리/오픈소스SW개발
GitHub
1. GitHub란?
1) GitHub란?
형상관리 툴인 Git 레포지토리를 지원하는 웹서비스
깃허브란 전세계적으로 널리 알려진 형상관리툴인 깃 저장소를 지원하는 웹서비스로 현재 많은 오픈소스가 깃허브를 통해서 관리되고 있고, 기업도 깃허브 엔터프라이즈를 통해서 많은 소프트웨어를 관리하고 있다. 이는 리포지토리를 생성해서 사용할 수 있다.
2) GitHub 특징
(1) Fork
오픈소스 툴을 개발하고 있는데 이에 기여하기 위해서는 여기에 commit하고 push할 수 있는 권한이 있어야한다. 이때 누군지 모르는 사람에게 commit, push의 권한을 주기 어렵기에 remote repository를 복제해서 해당 repository에서 commit, push를 할 수 있도록 한다. 이에 따라 remote repository에 대한 권한이 없어도 commit과 push가 가능하게 한다.
악의의 목적을 가지고 original repository에 대해 접근하는 경우에도 original repository에 영향을 미칠 수 없기에 오픈소스에서 매우 중요한 요소이다. Fork는 upstream이라는 것을 별도로 생성해서 original repository가 업데이트되는 것을 반영할 수 있다.
ex)
upstream/master: original repository에 대한 branch
origin/master: remote repository에 있는 branch
master: local repository에 있는 branch
(2) Pull request
original repository에서 Fork한 뒤, remote repository에서 새롭게 작업된 commit을 쭉 가져오는 역할을 한다. Pull request는 original repository에서 remote repository에서 작업한 내용을 확인할 수 있고, 이를 가져올 때 사용한다. 직접 original repository에 영향을 미치는 것이 아니라 remote repository에서 작업한 뒤 pull할 수 있기에 오픈소스에서 중요한 영향을 미친다.
2. Git Glance
(1) README.md
해당 프로젝트가 무엇인지, 어떻게 프로젝트를 사용할 수 있을지, 어떻게 기여할 수 있는지, 어떻게 설치할 수 있는지 등 전반적인 내용을 담고 있다. 협업 시 이 내용을 보고 프로젝트 내용을 알 수 있기에 중요하다.
(2) commit history
커밋한 내용을 확인할 수 있다.
(3) pull request
기능제한을 하거나, 리뷰를 할 때 많이 사용한다.
(4) Issues
게시판의 용도로 사용할 수 있다.
(5) Projects
- 프로젝트를 관리할 수 있는 이슈별 진행사항을 체크한다.
(6) Insights
- 기여도, fork 등에 대해 알 수 있는 자료들이 있다.
3. GitHub Flow
git flow와 유사한 면이 존재한다.
1) GitHub Flow
pull request를 내 코드를 리뷰해줄 수 있는 사람들에게 보낸 뒤 통과되면 merge된다.
2) 구체적인 flow
다른 사람들과의 충돌을 방지하기 위해 branch를 생성한다.
Deploy는 테스트하는 것을 의미한다.
'강의 내용 정리 > 오픈소스SW개발' 카테고리의 다른 글
오픈소스 SW개발 (7) Express (0) | 2022.05.03 |
---|---|
오픈소스 SW개발 (6) NodeJS (0) | 2022.04.23 |
오픈소스SW개발 (4), Git Advanced (0) | 2022.04.11 |
오픈소스 SW개발 (3) Git Branch (0) | 2022.04.07 |
오픈소스 SW개발 (2) Git basic (0) | 2022.03.18 |