[개발 상식] Git & Github
2018. 8. 24. 13:40ㆍEtc/Git
반응형
[개발 상식] Git & Github
해당 시리즈는 Interview_Question_for_Beginner를 기반으로 추가 학습을 진행해 작성하였습니다.
목차
Git
버전관리 도구로, 오픈소스에 기여하거나 협업을 할 때 쓰임
- 리눅스 커널 창시자(리누스 토발스)께서 만드심
- VCS(Version Control System) 중 하나
특징
- 빠른 속도
- 단순한 구조
- 비선형적인 개발 (수천 개의 동시 다발적인 브랜치)
- 분산 작업 - 원격저장소와 로컬을 분리
- 데이터 무결성 보장 - 모든 커밋에 대해 Checksum(Hash) 생성
Git 전략
- Gitflow
- 기본 브랜치 5가지
feature > develop > release > hotfix > master
존재 - branch
- master : production에서 사용하는 브랜치
- develop : 개발 중인 코드가 모두 머지 되는 곳
- feature : 새로운 기능을 추가하는 브랜치, origin에 반영되면 안됨
- release : 새로운 production 릴리즈를 위한 브랜치
develop에 개발된 내용을 마지막으로 검토하고 출시하기 위함
다 되면 master에 머지 - hotfix : production에서 발생한 버그를 고치는 곳
수정 끝나면 develop, master, release에 반영
- 기본 브랜치 5가지
- GitHub flow
- feature, develop 존재 X : 새로운 기능이 있을 경우 master에서 기능이름으로 branch를 딴다.
- 수시로 push 하고 머지하거나 도움이 필요할 때 pull request를 적극 활용해 리뷰를 받는다.
- master로 머지가 일어나면 hubot을 이용해 자동으로 배포된다.
- GitLab flow
- Gihub flow가 너무 간단해 여러 이슈를 야기하게 되어, 이를 보안하기 위해 관련 내용들을 추가적으로 덧붙여 설명한 것
production
브랜치가 존재해 커밋한 내용들을 일방적으로 디플로이 함.
Github
Git 데이터 온라인 저장소
- 백업 뿐만 아니라 여러 기능을 통해 공유 및 협업 진행 가능
GitHub Repository에 기여하기
용어 정리
- 메인 저장소(Main repository)
내가 기여하고 싶은 오픈소스의 메인 프로젝트 저장소(upstream
) - 나의 저장소(My github repository)
메인 저장소를fork
해 나의 계정에 만든 repository (origin
) - 로컬 저장소(Local git repository)
나의 컴퓨터상에 생성한 로컬 git repository - 작업 공간(workspace)
나의 컴퓨터상에서 실제 내가 소스를 개발하고 수정하는 workspace
순서
- 오픈소스 프로젝트 가져오기
원하는 오픈소스의 메인 저장소에서Fork
해서 나의 저장소로 복제한다. - 메인 저장소와 동기화 유지
동시 다발적으로 수정할 경우 생길conflict
를 방지하기 위하여
upstream
이라는 기존 메인 저장소를 가르키는 remote를 생성한다.origin
에 수시로upstream
으로 pull하여 변경 사항을 자신의 코드와 합친다.push
해서 나의 저장소에 변경사항을 업데이트 한다.
- 컨트리뷰트 하기
실제 소스코드의 버그를 수정하거나 기능을 개선하여 오픈소스에 기여하는 일
- 작업공간에서 수정된 소스코드를 로컬 저장소에
commit
한뒤 나의 저장소에push
pull request
보내기
- 작업공간에서 수정된 소스코드를 로컬 저장소에
Reference
반응형