2. 개요
• 소개
– git 소개
– stash 소개
• 사용법
– 기본 개념 : git이 어려운 이유
– stash 만의 기능 : fork / pull request
– 브랜칭/머징 전략 : nvie 전략
• committer 정책의 이해
– 목적
– 개념 이해
3. git
• git ?
• 분산 S/W 형상관리 도구(Distributed Software
Configuration Management Tool, DSCM tool)
– 또는 DVCS(Distributed Version Control System)이라고도 합니다.
• vs svn
– 뭐가 다르죠?
– svn 잘 쓰고 있는데 굳이 git으로 바꿀 필요가 있나요?
– svn에 비해 쓰기가 어렵던데요?
4. git
• git이 반드시 필요한 상황
(=svn으로는 관리가 어려운 상황)
– 개발 팀 2개 이상이 하나의 repository를 변경해야 할
경우
– 개발 버전/릴리즈 버전 으로 2원화 되어 버전관리를
해야 할 경우
– 혼자 개발하면서 버전 관리를 해야 하는 경우
5. svn 이라면…
v1.0
v1.1b – hdfs 버전
v1.2
svn server
기능3기능2기능1
기능3
기능2기능1
v1.1a – rdb 버전
이게 될까?
8. stash로 할 수 있는 일
bug
code
fine
code
개발 형상관리 배포 서비스
v1.0
v1.1
develop master
9. 기본 개념
• git 이 어려운 이유
– svn 처럼 생각하면 어렵다
• commit 했는데 왜 또 pull / push 해야 하나요?
• 분산 SCM
– client / server 로 분리되지 않는다
– 모든 client = server
– 로컬 저장소에 변경 이력을 저장
– 내가 아닌 다른 저장소 = remote
10. 용어 정리
local
remote
Local repository
내 hdd 안에 있는 source
code 변경 이력저장소
commit
source code 변경 최소 단위
branch
source code 의 독립적인 버전관
리를 위한 (repository 내의) 분기
merge
branch 와 branch를 합치는 작업
push
repository 와 repository를 합치는
작업 local -> remote
pull
repository 와 repository를 합치는
작업 local <- remote
11. git이 어려운 이유 #2
• push / pull 개념까진 이해를 했는데…
• branch / merge 를 어떻게 써야 하는지 모
르겠다…
• branch 와 merge 는 모든 구성원 간의 약
속에 의해 룰을 정하고 실행되어야 함
• branching / merging 전략이라고 합니다.
15. stash 계정 정책
• 일반 developer
– 저장소에 대하여
• read only 권한만 있음
• 개인 공간에 fork 할 수 있음
• fork 한 저장소에 write 할 수 있음
• fork 한 저장소에 write한 변경사항을 pull request 할 수 있
음
• committer
– 저장소에 대하여
• write 권한 있음
• pull request 에 대하여
– 승인
– 거절