ݺߣ

ݺߣShare a Scribd company logo
2013. 11.

elegantcoder@핸드스튜디오
Git+
blame, log, rebase, git-flow
2013. 11.

elegantcoder@핸드스튜디오
Blame
2013. 11.

elegantcoder@핸드스튜디오
Blame: 비난하다
• svn 에서는 annotate = praise = blame
2013. 11.

elegantcoder@핸드스튜디오
Blame은..
• blame 은 코드를 라인별로 평가할 수 있는 도구
• 이 라인을 누가/언제 변경한거지?
• blame + log 로 라인의 변화를 알아낼 수 있음
2013. 11.

elegantcoder@핸드스튜디오
tig: blame 이 쉬워진다
2013. 11.

elegantcoder@핸드스튜디오
Rebase
2013. 11.

elegantcoder@핸드스튜디오
Merge
양쪽 커밋을 모아 새로운 커밋이 생성됨.
커밋끼리 합침.
Merge branch ..
masterdevelop
2013. 11.

elegantcoder@핸드스튜디오
Rebase
커밋이 다른 브랜치로 합쳐짐
변경사항을 떼어다 붙임(patch)
masterdevelop
2013. 11.

elegantcoder@핸드스튜디오
Rebase 의 다른 기능들
• Interactive 모드를 사용하면… (git rebase -i)
• 이전,다음 커밋을 합치기 (Squash)
• 커밋을 지우기
• 커밋 메시지를 다시 쓰기 (Edit)
2013. 11.

elegantcoder@핸드스튜디오
커밋 옮기기
• 실수로 master 브랜치에 커밋했다. develop 에 옮겨보자.

(master, develop 모두 푸시하지 않은 상태)
• 1. develop 브랜치를 체크아웃
• 2. master 브랜치의 실수한 커밋을 cherry-pick 으로 develop
에 붙임
• 3. master 브랜치 체크아웃
• 4. master 브랜치에 실수한 커밋 삭제 (rebase 이용)
2013. 11.

elegantcoder@핸드스튜디오
git-flow 활용
2013. 11.

elegantcoder@핸드스튜디오
Time
release
branches masterdevelop hotfixes
feature
branches
Feature for
future
release
Tag
1.0
Major feature
for next
release
From this point on,
“next release”means
the release after 1.0
Severe bug
fixed for
production:
hotfix 0.2
Bugfixes from rel.
branch may be
continuously
merged back into
develop
Tag
0.1
Tag
0.2
Incorporate
bugfix in
develop
Only
bugfixes!
Start of release
branch for
1.0
2013. 11.

elegantcoder@핸드스튜디오
개발 = develop
개발은 develop 브랜치
master 는 개발시에 “절대” 건드리지 말 것
masterdevelop
2013. 11.

elegantcoder@핸드스튜디오
기능/결함은
feature 브랜치
각 기능단위로 feature 브랜치를 생성해 작업.
작업 후 develop 에 병합
사소한 수정 외에 develop 에서 직접 개발
금지
feature branches develop
2013. 11.

elegantcoder@핸드스튜디오
Release 브랜치
“메이저 또는 마이너 버전 적용 vX.Y.0”

릴리즈 과정에서 나타나는 변경을 커밋
(버전이름 변경, 빌드 날짜, Change log ..)
사소한 버그 수정
release
branches
developfeature
branches
master
2013. 11.

elegantcoder@핸드스튜디오
Release 브랜치
릴리즈 커밋이 끝나면 master, develop 에
Release 브랜치 병합.
명합된 master 를 production 서버로
release
branches
developfeature
branches
master
2013. 11.

elegantcoder@핸드스튜디오
긴급한 결함은
hotfix
“패치버전 적용 vx.y.Z”
긴급한 결함 - 다음 릴리즈를 기다릴 수 없을
만큼 중대한 문제.
결함을 hotfix 로 처리한 후 develop,
master 에 병합
hotfixes masterdevelop
2013. 11.

elegantcoder@핸드스튜디오
롤백
release - master 의 merge commit 을
Reverse commit.
Reverse commit 후 다시 릴리즈 절차
release masterdevelop hotfixes
2013. 11.

elegantcoder@핸드스튜디오
감사합니다

More Related Content

Git+, Git 조금 더 배워보기