GIT with Atlassian Git 을이용한형상관리 박재석 대표 투씨드
Agenda Why Git?
HISTORY ABOUT GIT 2005 년리누스토발즈에의해 Linux 커널프로젝트지원을위해제작된버전관리도구 12 년간지속적인발전및꾸준한성장세
CONCEPT 분산형버전관리시스템 Reverse Delta 방식이아닌변경에대한 Snapshot 방식
ARCHITECTURE
ARCHITECTURE VCS VCS 우리가일했던 Perforce 가이렇게 commit 을할때마다 Repository 에저장되는구조였다면 기존 VCS Git 은 local repository 에 commit 해두고 Remote Reposotory 에 push 하는구조입니다. 이런구조를 D-VCS 라고합니다.
장단점 [ 단점 ] 대용량소스 (100GB 이상 ) 관리시속도저하가능 기존방식에익숙한사용자는개념접근에시간이필요 이력관리가원활하지못한경우, 불필요한정보가누적 [ 장점 ] 기존대비 4X ~ 300X 빠른속도 다양한방식의명령어지원및 UNIX Command 지원 강력한 Branch 를통한비선형적개발환경지원 Network 가없어도, 중앙서버가없어도언제어디서든작업에대한버전관리 서버장애발생시빠른복원
STRATEGY 분산환경하에서의대표적인 3 가지 Workflow 기준모델을제시합니다. 중앙집중식 Workflow Integration-Manager Workflow Dictator and Lieutenants Workflow Integration Dictator Shared Repository Blessed Repository Blessed Repository 개발자 개발자 Dev private Dev public Dev public Lieutenant 개발자 Dev private Dev public Dev public Lieutenant
Agenda Git Command
COMMAND OVERVIEW Git 명령어는가급적검색을통해 Option을파악 명령어실행시나타나는 Output message를활용 모든파일의인위적인변경후에는반드시 add!! 초기화명령은 init 과 Clone 기본생성 Branch는 master 원격저장소는 Origin이라명시 빈 Dir은관리하지않음 Branch를적극활용
BRANCH & MERGE 서버 Branch 는물론이와별개로개인 Branch 를관리 Fast-forward merge: 분기된 master 에서변경이없이 Branch 에서만작업후 Merge 실행시 Master 1 2 3 Branch 2 3 3-Way merge: 분기된 Branch 와원본 Branch 모두변경이있을경우 Master 1 A M Branch 2 3 Conflict / Merge
REBASE Rebase 는 merge 가아니라말그대로 Base 를변경해주는명령 Rebase with Branch: 이력을선형적으로관리하기위해 Branch 의기준 Base 변경후 F.F Merge Master 1 A 2 3 Branch 2 3 Conflict / Rebase Merge Rebase with Commit: Commit 간의 Parent(Base) 변경 Master 1 2 3 Branch
REPO Repo 는대량의 Git project 를한번에다운 / 업로드처리하기위해사용하는 Utility Git Project A Repo command Git Project B Git Project C manifest.xml
OTHERS Git 은굉장히많은명령어를통해버전관리작업을지원 Git의 Commit을삭제해주는 git reset 다른 Branch 에서특정 Commit 을갖고오는 git cherry-pick Commit 전의현재상태를보여주는 git status 및이력을보여주는 git log 특정 Commit을식별하기위한 git tag 이밖에도많은명령과다양한 Option이존재 필요한작업동작에대해서검색을통해명령어및옵션을찾아보는것을적극권장!!
Agenda Bitbucket with Git
ABOUT BITBUCKET Git 기반의소스관리 D V C S 가장범용적인 Git 기반의개발소스관리환경을기반으로강력한확장성을제공하는협업형 Git 솔루션 강력한권한통제 P r i v i l e g e Bitbucket 의강력한 Branch 권한및 프로젝트권한관리기능으로 보다강력한권한통제 [ 제품소개및다운로드 ] https://ko.atlassian.com/software/bitbucket Atlassian 제품통합 Jira 및 Bamboo 와강력한연계를 편리한 Code 검색 통해 Source code 의통합이력관리 시맨틱검색을기본포함하여 및자동화빌드 / 배포를보다 편리한코드검색환경제공 원활하게구성 S e a r c h i n g
ABOUT BITBUCKET Bitbucket Cloud 이외에 On-Promise 형태는다음과같이 2 가지제품으로구성
BITBUCKET 다양한 Project 및 Project 별 Repository 구성을보다편리하게구성
BITBUCKET WITH ATLASSIAN SOURCETREE 무료로사용이가능한 Git Client UI 도구 작업 Dir 에대한현황 (Branch 포함 ) 및상세내역에대해조회가간편 Bitbucket 을사용시 Bitbucket 에서바로호출하여 Clone 등의명령을편리하게활용
BITBUCKET WITH CODE REVIEW 다양한 Project 및 Project 별 Repository 구성을보다편리하게구성
BITBUCKET WITH JIRA SOFTWARE Process 와융합한버전관리를통해명확한개발흐름의통제 적용효과 : Release 14% 증가및 Issue closing 23% 증가
BITBUCKET WITH JIRA SOFTWARE & BAMBOO Process 로부터버전관리및자동화빌드및배포까지전체의업무흐름을통합
Agenda Git for Developer
GIT FOR DEVELOPER Git 의장점인 Branch 를적극활용 Client 3 Pull 5 Push Master (Dev own) 1 Create Branch M 2 Commit 4 Merge Branch 1 Git 은사용자가잘사용해야문제없이버전을관리할수있음을유의 명령어와 UI 도구를병행사용
GIT FLOW Git 의장점인 Branch 를적극활용하기위한 Best Practice 기본 5 개의 Branch 자동생성제공 1 2 3 4 5 Master Branch Release Branch Hotfix Branch Develop Branch Feature Branch
GIT 에대해보다 세한내용은 Twoseed 에서제공하는공개자료페이지를참고하세요. URL: http://wiki.twoseed.co.kr
Thank you! End of Document