Git 기본용어
Repository
: 소스 코드가 저장되어 있는 여러 개의 Branch가 모여있는 디스크상의 물리적 공간
Local Repository와 Remote Repository로 구분
Checkout
: 특정 시점이나 Branch의 소스코드로 이동하는 것을 의미
Check-out 대상 : Branch, Commit, Tag
Check-out을 통해 과거 여러 시점의 코드로 이동이 가능
Stage
: 작업할 내용이 올라가는 임시저장영역
: 이 영역을 이용하여 작업한 내용중 commit에 반영할 파일만 선별하여 commit을 수행할 수 있다.
Commit
: 작업할 내용을 Local Repository에 저장하는 과정
: 각각의 commit 은 의미있는 변경단위이고, 변경에 대한 설명을 cpmmit log로 남김
권장 - commit을 아끼지 마세요. (게임의 savepoint)
참고 - commit 단위나 commit log format을 정해놓은 회사나 팀도 있음(빌드서버 사용하는 경우)
Tag
: 임의의 commit 위치에 쉽게 찾아갈 수 있도록 붙여놓은 이정표
: Tag가 붙은 commit은 commit id(version) 대신 tag name으로 쉽게 checkout 가능
Push
: Local Repository 의 내용 중, Remote Repository에 반영되지 않은 commit을 Remote Repository로 보내는 과정
권장 - Push하는 순간 다른 개발자들도 영향을 받음. 검증되지 않은 코드는 Push하지 않도록 함.
Pull
: Remote Repository에 있는 내용 중, Local Repository 에 반영되지 않은 내용을 가져와서 Local Repository 에 저장하는 과정
: 다른 팀원이 변경하고 Push한 내용을 Local Repository에 가져올 수 있음
참고 - Push하는 과정에서 Conflit이 일어나서 Push가 거절된 경우, Pull을 통해 Remote Repository 의 변경내용을 Local Repository 에 반영하여 충돌을 해결한 뒤 다시 Push 해야 함.
Branch
: 특정 시점(commit 단위)에서 분기하여 새로운 commit을 쌓을 수 있는 가지를 만드는 것
: 개발의 주축이 되는 branch를 master branch(혹은 main branch)라고 함
: 모든 branch는 최종적으로 다시 master branch에 merge 되는 형식으로 진행 됨
Merge
: branch의 반대개념으로 하나의 branch를 다른 branch와 합치는 과정
: merge 되는 두 branch는 주종관계가 성립.
ex) dev branch를 main branch에 merge
: merge 되는 과정에서 conflict이 발생하는 경우 Diff를 수정하여 충돌을 해결한 뒤 merge 진행할 수 있음.
- Git
- SVN보다 빠른속도와 많은 기능을 지원한다
- 현재 많은 기업이 사용중이다
Git
git-scm.com
- Github
- Git을 호스팅해주는 웹서비스이다.
- 협업을 위한 기능을 제공 한다
참고 - 소스코드보안이 중요한 경우 사용을 기피한다.
GitHub: Let’s build from here
GitHub is where over 94 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and feat...
github.com
- Gitlab
- 설치형 버전관리 시스템 - 소스코드 보안이 중요한 기업에서 주로 사용한다
- 클라우드버전관리시스템 - 10명이하 무료이다.(Github와유사)
- Issue tracker, Git Remote Repository, API, Team, Group 기능 제공한다.
The One DevOps Platform
From planning to production, bring teams together in one application. Ship secure code more efficiently to deliver value faster.
about.gitlab.com