SlideShare a Scribd company logo
1 of 18
Stash 사용자 교육
개요
• 소개
– git 소개
– stash 소개
• 사용법
– 기본 개념 : git이 어려운 이유
– stash 만의 기능 : fork / pull request
– 브랜칭/머징 전략 : nvie 전략
• committer 정책의 이해
– 목적
– 개념 이해
git
• git ?
• 분산 S/W 형상관리 도구(Distributed Software
Configuration Management Tool, DSCM tool)
– 또는 DVCS(Distributed Version Control System)이라고도 합니다.
• vs svn
– 뭐가 다르죠?
– svn 잘 쓰고 있는데 굳이 git으로 바꿀 필요가 있나요?
– svn에 비해 쓰기가 어렵던데요?
git
• git이 반드시 필요한 상황
(=svn으로는 관리가 어려운 상황)
– 개발 팀 2개 이상이 하나의 repository를 변경해야 할
경우
– 개발 버전/릴리즈 버전 으로 2원화 되어 버전관리를
해야 할 경우
– 혼자 개발하면서 버전 관리를 해야 하는 경우
svn 이라면…
v1.0
v1.1b – hdfs 버전
v1.2
svn server
기능3기능2기능1
기능3
기능2기능1
v1.1a – rdb 버전
이게 될까?
svn 이라면…
v1.0
v1.1
develop master
긴급
버그수정
이게 될까?
stash
• git service web hosting
• + 두 가지 기능
– fork
– pull request
stash로 할 수 있는 일
bug
code
fine
code
개발 형상관리 배포 서비스
v1.0
v1.1
develop master
기본 개념
• git 이 어려운 이유
– svn 처럼 생각하면 어렵다
• commit 했는데 왜 또 pull / push 해야 하나요?
• 분산 SCM
– client / server 로 분리되지 않는다
– 모든 client = server
– 로컬 저장소에 변경 이력을 저장
– 내가 아닌 다른 저장소 = remote
용어 정리
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
git이 어려운 이유 #2
• push / pull 개념까진 이해를 했는데…
• branch / merge 를 어떻게 써야 하는지 모
르겠다…
• branch 와 merge 는 모든 구성원 간의 약
속에 의해 룰을 정하고 실행되어야 함
• branching / merging 전략이라고 합니다.
nvie 전략
stash
• fork
– 웹 계정으로 개인화된 repository를 온라인에
서 clone 해 주는 기능
• pull request
– read only 권한만 있는 repository에 나의 변
경사항을 반영해달라는 요청
committer
• 중앙 repository(=remote origin)에 write
할 수 있는 권한을 가진 사람
• committer는 pull request 를
– 승인하거나
– 거절할 수 있습니다.
stash 계정 정책
• 일반 developer
– 저장소에 대하여
• read only 권한만 있음
• 개인 공간에 fork 할 수 있음
• fork 한 저장소에 write 할 수 있음
• fork 한 저장소에 write한 변경사항을 pull request 할 수 있
음
• committer
– 저장소에 대하여
• write 권한 있음
• pull request 에 대하여
– 승인
– 거절
실습
QnA
• 질문?
감사합니다.

More Related Content

What's hot

제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기NAVER D2
 
[D2]pinpoint 개발기
[D2]pinpoint 개발기[D2]pinpoint 개발기
[D2]pinpoint 개발기NAVER D2
 
[devil's camp] - Crack me (김민재)
[devil's camp] - Crack me (김민재)[devil's camp] - Crack me (김민재)
[devil's camp] - Crack me (김민재)NAVER D2
 
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)NAVER D2
 
내가써본 nGrinder-SpringCamp 2015
내가써본 nGrinder-SpringCamp 2015내가써본 nGrinder-SpringCamp 2015
내가써본 nGrinder-SpringCamp 2015Lim SungHyun
 
2014.04.24.nrise 개발환경
2014.04.24.nrise 개발환경2014.04.24.nrise 개발환경
2014.04.24.nrise 개발환경Moon Soo Kim
 
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017devCAT Studio, NEXON
 
백승엽, M2프로젝트의 오류보고시스템, NDC2010
백승엽, M2프로젝트의 오류보고시스템, NDC2010백승엽, M2프로젝트의 오류보고시스템, NDC2010
백승엽, M2프로젝트의 오류보고시스템, NDC2010devCAT Studio, NEXON
 
NRISE 개발스택
NRISE 개발스택NRISE 개발스택
NRISE 개발스택Moon Soo Kim
 
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018devCAT Studio, NEXON
 
게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP Adv게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP AdvSeungmo Koo
 
Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드
Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드
Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드도형 임
 
신림프로그래머모임_개발프로세스개선기
신림프로그래머모임_개발프로세스개선기신림프로그래머모임_개발프로세스개선기
신림프로그래머모임_개발프로세스개선기none
 
Programming skills 1부
Programming skills 1부Programming skills 1부
Programming skills 1부JiHyung Lee
 
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재NAVER D2
 
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍게임서버프로그래밍 #4 - 멀티스레드 프로그래밍
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍Seungmo Koo
 
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출 NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출 정주 김
 
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019devCAT Studio, NEXON
 
티켓몬스터를 위한 PHP 개발 방법
티켓몬스터를 위한 PHP 개발 방법티켓몬스터를 위한 PHP 개발 방법
티켓몬스터를 위한 PHP 개발 방법Young D
 

What's hot (20)

제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
 
[D2]pinpoint 개발기
[D2]pinpoint 개발기[D2]pinpoint 개발기
[D2]pinpoint 개발기
 
[devil's camp] - Crack me (김민재)
[devil's camp] - Crack me (김민재)[devil's camp] - Crack me (김민재)
[devil's camp] - Crack me (김민재)
 
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
 
내가써본 nGrinder-SpringCamp 2015
내가써본 nGrinder-SpringCamp 2015내가써본 nGrinder-SpringCamp 2015
내가써본 nGrinder-SpringCamp 2015
 
2014.04.24.nrise 개발환경
2014.04.24.nrise 개발환경2014.04.24.nrise 개발환경
2014.04.24.nrise 개발환경
 
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
 
백승엽, M2프로젝트의 오류보고시스템, NDC2010
백승엽, M2프로젝트의 오류보고시스템, NDC2010백승엽, M2프로젝트의 오류보고시스템, NDC2010
백승엽, M2프로젝트의 오류보고시스템, NDC2010
 
NRISE 개발스택
NRISE 개발스택NRISE 개발스택
NRISE 개발스택
 
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
 
게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP Adv게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP Adv
 
Chap4_2
Chap4_2Chap4_2
Chap4_2
 
Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드
Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드
Exception log practical_coding_guide, 예외와 로그 코딩 실용 가이드
 
신림프로그래머모임_개발프로세스개선기
신림프로그래머모임_개발프로세스개선기신림프로그래머모임_개발프로세스개선기
신림프로그래머모임_개발프로세스개선기
 
Programming skills 1부
Programming skills 1부Programming skills 1부
Programming skills 1부
 
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
 
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍게임서버프로그래밍 #4 - 멀티스레드 프로그래밍
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍
 
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출 NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
 
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
 
티켓몬스터를 위한 PHP 개발 방법
티켓몬스터를 위한 PHP 개발 방법티켓몬스터를 위한 PHP 개발 방법
티켓몬스터를 위한 PHP 개발 방법
 

Viewers also liked

Dependency hell과 빌드지옥 탈출
Dependency hell과 빌드지옥 탈출Dependency hell과 빌드지옥 탈출
Dependency hell과 빌드지옥 탈출Byeongsu Kang
 
Kth개발자 세미나 1회
Kth개발자 세미나 1회Kth개발자 세미나 1회
Kth개발자 세미나 1회Byeongsu Kang
 
생각이라는 벽돌로 만드는 집
생각이라는 벽돌로 만드는 집생각이라는 벽돌로 만드는 집
생각이라는 벽돌로 만드는 집Byeongsu Kang
 
예외처리가이드
예외처리가이드예외처리가이드
예외처리가이드도형 임
 
코딩소림사 Rx java
코딩소림사 Rx java코딩소림사 Rx java
코딩소림사 Rx javaByeongsu Kang
 
Git의 개념과 사용
Git의 개념과 사용Git의 개념과 사용
Git의 개념과 사용환민 홍
 
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?OpenStack Korea Community
 

Viewers also liked (7)

Dependency hell과 빌드지옥 탈출
Dependency hell과 빌드지옥 탈출Dependency hell과 빌드지옥 탈출
Dependency hell과 빌드지옥 탈출
 
Kth개발자 세미나 1회
Kth개발자 세미나 1회Kth개발자 세미나 1회
Kth개발자 세미나 1회
 
생각이라는 벽돌로 만드는 집
생각이라는 벽돌로 만드는 집생각이라는 벽돌로 만드는 집
생각이라는 벽돌로 만드는 집
 
예외처리가이드
예외처리가이드예외처리가이드
예외처리가이드
 
코딩소림사 Rx java
코딩소림사 Rx java코딩소림사 Rx java
코딩소림사 Rx java
 
Git의 개념과 사용
Git의 개념과 사용Git의 개념과 사용
Git의 개념과 사용
 
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
 

Similar to Stash 사용자 교육

git, git flow
git, git flowgit, git flow
git, git floweva
 
Git basic2 chaos
Git basic2 chaosGit basic2 chaos
Git basic2 chaosYunkyu Choi
 
오픈소스 공헌을 위한 필수 지식
오픈소스 공헌을 위한 필수 지식오픈소스 공헌을 위한 필수 지식
오픈소스 공헌을 위한 필수 지식Matthew (정재화)
 
Git 기본개념과 사용법 그리고 어플리케이션
Git 기본개념과 사용법 그리고 어플리케이션Git 기본개념과 사용법 그리고 어플리케이션
Git 기본개념과 사용법 그리고 어플리케이션Dabi Ahn
 
안정적인 서비스 운영 2014.03
안정적인 서비스 운영   2014.03안정적인 서비스 운영   2014.03
안정적인 서비스 운영 2014.03Changyol BAEK
 
Git: A Motivating Introduction
Git: A Motivating IntroductionGit: A Motivating Introduction
Git: A Motivating IntroductionJongwook Choi
 
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHubXECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHubXpressEngine
 
EOST2023-이보라-HackYourGitEducation.pptx
EOST2023-이보라-HackYourGitEducation.pptxEOST2023-이보라-HackYourGitEducation.pptx
EOST2023-이보라-HackYourGitEducation.pptxBora Lee
 
Pivot3 tech overview_201704
Pivot3 tech overview_201704Pivot3 tech overview_201704
Pivot3 tech overview_201704CDIT-HCI
 
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기Sumin Byeon
 
svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드Insub Lee
 
Yobi-hands-on-lab-at-d2fest
Yobi-hands-on-lab-at-d2festYobi-hands-on-lab-at-d2fest
Yobi-hands-on-lab-at-d2festinsanehong Kim
 
[D2 fest 2014]yobi hands on lab
[D2 fest 2014]yobi hands on lab[D2 fest 2014]yobi hands on lab
[D2 fest 2014]yobi hands on labNAVER D2
 
Git & Github Seminar-2
Git & Github Seminar-2Git & Github Seminar-2
Git & Github Seminar-2sangyun han
 
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기CONNECT FOUNDATION
 

Similar to Stash 사용자 교육 (20)

git, git flow
git, git flowgit, git flow
git, git flow
 
Git
GitGit
Git
 
Git basic2 chaos
Git basic2 chaosGit basic2 chaos
Git basic2 chaos
 
오픈소스 공헌을 위한 필수 지식
오픈소스 공헌을 위한 필수 지식오픈소스 공헌을 위한 필수 지식
오픈소스 공헌을 위한 필수 지식
 
Git 기본개념과 사용법 그리고 어플리케이션
Git 기본개념과 사용법 그리고 어플리케이션Git 기본개념과 사용법 그리고 어플리케이션
Git 기본개념과 사용법 그리고 어플리케이션
 
안정적인 서비스 운영 2014.03
안정적인 서비스 운영   2014.03안정적인 서비스 운영   2014.03
안정적인 서비스 운영 2014.03
 
Git: A Motivating Introduction
Git: A Motivating IntroductionGit: A Motivating Introduction
Git: A Motivating Introduction
 
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHubXECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
 
EOST2023-이보라-HackYourGitEducation.pptx
EOST2023-이보라-HackYourGitEducation.pptxEOST2023-이보라-HackYourGitEducation.pptx
EOST2023-이보라-HackYourGitEducation.pptx
 
Pivot3 tech overview_201704
Pivot3 tech overview_201704Pivot3 tech overview_201704
Pivot3 tech overview_201704
 
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
 
svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드
 
Gitflow ppt
Gitflow pptGitflow ppt
Gitflow ppt
 
Yobi-hands-on-lab-at-d2fest
Yobi-hands-on-lab-at-d2festYobi-hands-on-lab-at-d2fest
Yobi-hands-on-lab-at-d2fest
 
[D2 fest 2014]yobi hands on lab
[D2 fest 2014]yobi hands on lab[D2 fest 2014]yobi hands on lab
[D2 fest 2014]yobi hands on lab
 
Git
Git Git
Git
 
Git & Github Seminar-2
Git & Github Seminar-2Git & Github Seminar-2
Git & Github Seminar-2
 
Git
GitGit
Git
 
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
 
Git
GitGit
Git
 

More from Byeongsu Kang

Aws summit 2017 사내전파교육
Aws summit 2017 사내전파교육Aws summit 2017 사내전파교육
Aws summit 2017 사내전파교육Byeongsu Kang
 
알고리즘 문제해결전략 #1
알고리즘 문제해결전략 #1알고리즘 문제해결전략 #1
알고리즘 문제해결전략 #1Byeongsu Kang
 
개발자 환경 설정
개발자 환경 설정개발자 환경 설정
개발자 환경 설정Byeongsu Kang
 

More from Byeongsu Kang (7)

Kotlin study #1
Kotlin study #1Kotlin study #1
Kotlin study #1
 
Kotlin study #0
Kotlin study #0Kotlin study #0
Kotlin study #0
 
Aws summit 2017 사내전파교육
Aws summit 2017 사내전파교육Aws summit 2017 사내전파교육
Aws summit 2017 사내전파교육
 
알고리즘2
알고리즘2알고리즘2
알고리즘2
 
알고리즘 문제해결전략 #1
알고리즘 문제해결전략 #1알고리즘 문제해결전략 #1
알고리즘 문제해결전략 #1
 
Rx java essentials
Rx java essentialsRx java essentials
Rx java essentials
 
개발자 환경 설정
개발자 환경 설정개발자 환경 설정
개발자 환경 설정
 

Stash 사용자 교육

  • 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 버전 이게 될까?
  • 7. stash • git service web hosting • + 두 가지 기능 – fork – pull request
  • 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 전략이라고 합니다.
  • 13. stash • fork – 웹 계정으로 개인화된 repository를 온라인에 서 clone 해 주는 기능 • pull request – read only 권한만 있는 repository에 나의 변 경사항을 반영해달라는 요청
  • 14. committer • 중앙 repository(=remote origin)에 write 할 수 있는 권한을 가진 사람 • committer는 pull request 를 – 승인하거나 – 거절할 수 있습니다.
  • 15. stash 계정 정책 • 일반 developer – 저장소에 대하여 • read only 권한만 있음 • 개인 공간에 fork 할 수 있음 • fork 한 저장소에 write 할 수 있음 • fork 한 저장소에 write한 변경사항을 pull request 할 수 있 음 • committer – 저장소에 대하여 • write 권한 있음 • pull request 에 대하여 – 승인 – 거절