ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
Branch Strategy
& Case Study
NHN NEXT ???
GIT Structure
Working
Directory
Staging
Area
Local
Repository
add commit
Remote Repository
Offline
?
Online
push
fetch	
 ?
clone
checkout	
 ?
merge
pull
Branch Strategy
Master
Develop
Feature
Time
: ?? ???? ??? ???(????)
: ??? ???? ???? ???(????)
: ?? ??? ???? ?? ???(???? ???)
HotFix Branch(????)
Case Study 1
????? ???? ?? ?
$	
 ?git	
 ?diff	
 ?[-?©\-?©\word-?©\diff]
????? ?? Staged ??? ??(add? ??) ??? ?? ? ? ? ??
Unstaged ??? ??? ????!
--word-diff : ????? ???
$	
 ?git	
 ?diff	
 ?-?©\-?©\staged
?? ???? ??? ?? Staging Area(add ?)? ?? ?? ??? ???
Case Study 2
????? ?? ???? ???? ?? ?
$	
 ?git	
 ?commit	
 ?-?©\m	
 ?¡°commit	
 ?message¡±
?? ???? ????? ???? ??? ?
$	
 ?git	
 ?commit	
 ?-?©\a	
 ?-?©\m	
 ?¡°commit	
 ?message¡±
Staging Area? ???? ?? ? ?
git ?? ???? ?? ??? ????? add? ???? ?? ? ? ??
$	
 ?git	
 ?commit	
 ?-?©\-?©\amend
??? ??? ???? ?? ?(??? ????, ???? ??? ?? ?)
Case Study 3
Staging Area? ?? ??? ??? ????? ???? ?? ?
$	
 ?git	
 ?rm	
 ?[-?©\f]	
 ?[-?©\-?©\cached]	
 ?file
Staging Area?? ??? ???? ?? ?(???? ???, ?? ??)
?? ??? ???? Unstaged(deleted)??? ??
-f : ??? ??
--cached : ??? ???? ?? ?(??? ???? ??? ?? add?? ?)
$	
 ?git	
 ?mv	
 ?file_from	
 ?file_to
Staging Area?? ??? ????? ??? ??? ???(???? ??)
Case Study 4
?? ????? ???? ?? ?
$	
 ?git	
 ?log	
 ?[-?©\p	
 ?[-?©\-?©\word-?©\diff]]	
 ?[-?©\2]
?? ???? ?? ????? ?? ? ?
-p : ? ??? diff??? ?? ?? ?
--word-diff : ????? diff??? ?? ?? ?
-2 : ?? 2?? ??? ?? ?? ?
$	
 ?git	
 ?log	
 ?[-?©\-?©\stat]	
 ?[-?©\-?©\oneline]	
 ?[-?©\-?©\graph]
--stat : ????? ??? ?? ?? ?(????? ?? ???)
--oneline : ? ??? ??? ?? ?? ?
--graph : ???? ?? ????? ???? ???? ?? ?? ?
$	
 ?git	
 ?log	
 ?[-?©\-?©\since=2.weeks]	
 ?[-?©\-?©\author=woogenius]
--since=2.weeks : ?? 2?? ??? ???? ?? ?
after, until, before ? ?? ?? ¡°2008-11-01¡±?? ??? ? ? ??
--author=woogenius : woogenius? ??? ???? ?? ?
Case Study 5
????? ???? ?? ?
$	
 ?git	
 ?reset	
 ?HEAD	
 ?file
Staging Area? ?? ??? Unstage??? ???? ?? ?(??? add)
$	
 ?git	
 ?checkout	
 ?-?©\-?©\	
 ?file
??? ??? ?? ??? ???? ???? ?? ?
????
?
??? ??? ?? ???? ?? ??? ?? ?????
???? ????.
???
?
???? ????? ???? ????.
???? ?? ????? ??? ?? ???.
HEAD
?
HEAD?? ???? ?? ???? ?????? ????.
Branch?
Case Study 6
???? ??? ???? ???? ?? ?
$	
 ?git	
 ?branch	
 ?branch
?? ????? ??? ???? ??? ?? ?(???? ??)
$	
 ?git	
 ?branch	
 ?-?©\d	
 ?branch
merge? ??? ????? ???? ???? ?? ?
?? ??? ???? ???? ??? ?(?? ???? ? ? ??)
$	
 ?git	
 ?checkout	
 ?branch
??????? ?????? ???? ?? ?
$	
 ?git	
 ?checkout	
 ?-?©\b	
 ?branch
?? ????? ??? ???? ??? ? ???? ???? ?? ?
branch? checkout??? ?? ?
Case Study 7
??? ???? ??? ?? ?
$	
 ?git	
 ?merge	
 ?branch
?? ???? ?? ???? ??? ?? ?
? ???? ???? ?? ??? ???? ??? ???? 3-way Merge?
??? ??? ???? ??? ?? ???? ? ??? ????? ????
Merge? ??? ??? ??? ????
C4? ?? master????? iss53???? Merge??
Case Study 8
???? Merge?? ?? ?
$	
 ?git	
 ?rebase	
 ?base	
 ?branch	
 ?[topic	
 ?branch]
topic branch? base branch? rebase?? ??
topic branch?? topic branch? ?? ? ? ??
????? patch? ??? base branch? ???? ??? Merge?
Merge? ??? ??? ?? ????? ??
?? push? ??? rebase?? ??? ?? ? ??(??? ??!)
$	
 ?git	
 ?rebase	
 ?master	
 ?experiment	
 ?
	
 ? (Rebase)
$	
 ?git	
 ?checkout	
 ?master	
 ?
$	
 ?git	
 ?merge	
 ?expreiment	
 ?
	
 ? (Fast-?©\Forward)
C3? ?? experiment ????? ??
Merge VS Rebase
Merge Rebase
?HEAD:index.html	
 ?
div	
 ?contact	
 ?:	
 ?email.support@github.com	
 ?/div	
 ?
=======	
 ?
div	
 ?please	
 ?contact	
 ?us	
 ?at	
 ?support@github.com	
 ?/div	
 ?
	
 ?iss53:index.html
??? ?????
git status?? ??? unmerged ??? ??.
? ??? ??? ???? ????.
??? ?? ? ???? ?????? Merge??.
div	
 ?
please	
 ?contact	
 ?us	
 ?at	
 ?email.support@github.com	
 ?
/div
Case Study 9
???? ??? ?? ?? ?
$	
 ?git	
 ?branch	
 ?[-?©\v]	
 ?[-?©\a]	
 ?[-?©\r]
?? ???? ??? ?? HEAD? ??? ???
-v : ????? ??? ?? ???? ?? ???
-a : ??? ???? ?? ??? ??? ?? ???
-r : ??? ??? ???? ???
$	
 ?git	
 ?branch	
 ?-?©\-?©\merged
merge? ??? ??? ?? ?? ?
*? ???? ?? ???? ?? merge? ???? ???? ?
$	
 ?git	
 ?branch	
 ?-?©\-?©\no-?©\merged
merge?? ?? ??? ??? ?? ?? ?
merge?? ?? ???? ??? ????? git branch -D? ???
Local Branch
!
?? ????? ??
!
??
branch
!
???? ?? ??
!
git push remote branch
???? ??? ????.
!
??????? ?? ????
?? ? ??.
Remote Branch
!
??? ??? ???? ??
!
??
remote/branch
!
???? ?? ??
!
git fetch remote ????
??? ??? ???? ??? ???.
!
fetch?? ?? ??? ??? ????
??? ???? ?? ? ??.
??? ??? ???? ?????!
Case Study 10
??? ???? ??, ???? ?? ?
$	
 ?git	
 ?push	
 ?remote	
 ?branch
?? ???? ??? ???? ?? ?
??? ?? ???? ??? ?? ???? ??? ???? ??? ????
$	
 ?git	
 ?push	
 ?remote	
 ?local	
 ?branch:remote	
 ?branch
?? ???? ????? ??? ???? ???? ?? ?
$	
 ?git	
 ?push	
 ?remote	
 ?:remote	
 ?branch
??? ???? ???? ?? ?
local branch??? ????? ? ???? remote branch? ??? ? ?

More Related Content

Git branch stregagy & case study

  • 1. Branch Strategy & Case Study NHN NEXT ???
  • 4. Branch Strategy Master Develop Feature Time : ?? ???? ??? ???(????) : ??? ???? ???? ???(????) : ?? ??? ???? ?? ???(???? ???) HotFix Branch(????)
  • 5. Case Study 1 ????? ???? ?? ? $ ?git ?diff ?[-?©\-?©\word-?©\diff] ????? ?? Staged ??? ??(add? ??) ??? ?? ? ? ? ?? Unstaged ??? ??? ????! --word-diff : ????? ??? $ ?git ?diff ?-?©\-?©\staged ?? ???? ??? ?? Staging Area(add ?)? ?? ?? ??? ???
  • 6. Case Study 2 ????? ?? ???? ???? ?? ? $ ?git ?commit ?-?©\m ?¡°commit ?message¡± ?? ???? ????? ???? ??? ? $ ?git ?commit ?-?©\a ?-?©\m ?¡°commit ?message¡± Staging Area? ???? ?? ? ? git ?? ???? ?? ??? ????? add? ???? ?? ? ? ?? $ ?git ?commit ?-?©\-?©\amend ??? ??? ???? ?? ?(??? ????, ???? ??? ?? ?)
  • 7. Case Study 3 Staging Area? ?? ??? ??? ????? ???? ?? ? $ ?git ?rm ?[-?©\f] ?[-?©\-?©\cached] ?file Staging Area?? ??? ???? ?? ?(???? ???, ?? ??) ?? ??? ???? Unstaged(deleted)??? ?? -f : ??? ?? --cached : ??? ???? ?? ?(??? ???? ??? ?? add?? ?) $ ?git ?mv ?file_from ?file_to Staging Area?? ??? ????? ??? ??? ???(???? ??)
  • 8. Case Study 4 ?? ????? ???? ?? ? $ ?git ?log ?[-?©\p ?[-?©\-?©\word-?©\diff]] ?[-?©\2] ?? ???? ?? ????? ?? ? ? -p : ? ??? diff??? ?? ?? ? --word-diff : ????? diff??? ?? ?? ? -2 : ?? 2?? ??? ?? ?? ? $ ?git ?log ?[-?©\-?©\stat] ?[-?©\-?©\oneline] ?[-?©\-?©\graph] --stat : ????? ??? ?? ?? ?(????? ?? ???) --oneline : ? ??? ??? ?? ?? ? --graph : ???? ?? ????? ???? ???? ?? ?? ? $ ?git ?log ?[-?©\-?©\since=2.weeks] ?[-?©\-?©\author=woogenius] --since=2.weeks : ?? 2?? ??? ???? ?? ? after, until, before ? ?? ?? ¡°2008-11-01¡±?? ??? ? ? ?? --author=woogenius : woogenius? ??? ???? ?? ?
  • 9. Case Study 5 ????? ???? ?? ? $ ?git ?reset ?HEAD ?file Staging Area? ?? ??? Unstage??? ???? ?? ?(??? add) $ ?git ?checkout ?-?©\-?©\ ?file ??? ??? ?? ??? ???? ???? ?? ?
  • 10. ????
  • 11. ? ??? ??? ?? ???? ?? ??? ?? ????? ???? ????. ???
  • 12. ? ???? ????? ???? ????. ???? ?? ????? ??? ?? ???. HEAD
  • 13. ? HEAD?? ???? ?? ???? ?????? ????. Branch?
  • 14. Case Study 6 ???? ??? ???? ???? ?? ? $ ?git ?branch ?branch ?? ????? ??? ???? ??? ?? ?(???? ??) $ ?git ?branch ?-?©\d ?branch merge? ??? ????? ???? ???? ?? ? ?? ??? ???? ???? ??? ?(?? ???? ? ? ??) $ ?git ?checkout ?branch ??????? ?????? ???? ?? ? $ ?git ?checkout ?-?©\b ?branch ?? ????? ??? ???? ??? ? ???? ???? ?? ? branch? checkout??? ?? ?
  • 15. Case Study 7 ??? ???? ??? ?? ? $ ?git ?merge ?branch ?? ???? ?? ???? ??? ?? ? ? ???? ???? ?? ??? ???? ??? ???? 3-way Merge? ??? ??? ???? ??? ?? ???? ? ??? ????? ???? Merge? ??? ??? ??? ???? C4? ?? master????? iss53???? Merge??
  • 16. Case Study 8 ???? Merge?? ?? ? $ ?git ?rebase ?base ?branch ?[topic ?branch] topic branch? base branch? rebase?? ?? topic branch?? topic branch? ?? ? ? ?? ????? patch? ??? base branch? ???? ??? Merge? Merge? ??? ??? ?? ????? ?? ?? push? ??? rebase?? ??? ?? ? ??(??? ??!) $ ?git ?rebase ?master ?experiment ? ? (Rebase) $ ?git ?checkout ?master ? $ ?git ?merge ?expreiment ? ? (Fast-?©\Forward) C3? ?? experiment ????? ??
  • 18. ?HEAD:index.html ? div ?contact ?: ?email.support@github.com ?/div ? ======= ? div ?please ?contact ?us ?at ?support@github.com ?/div ? ?iss53:index.html ??? ????? git status?? ??? unmerged ??? ??. ? ??? ??? ???? ????. ??? ?? ? ???? ?????? Merge??. div ? please ?contact ?us ?at ?email.support@github.com ? /div
  • 19. Case Study 9 ???? ??? ?? ?? ? $ ?git ?branch ?[-?©\v] ?[-?©\a] ?[-?©\r] ?? ???? ??? ?? HEAD? ??? ??? -v : ????? ??? ?? ???? ?? ??? -a : ??? ???? ?? ??? ??? ?? ??? -r : ??? ??? ???? ??? $ ?git ?branch ?-?©\-?©\merged merge? ??? ??? ?? ?? ? *? ???? ?? ???? ?? merge? ???? ???? ? $ ?git ?branch ?-?©\-?©\no-?©\merged merge?? ?? ??? ??? ?? ?? ? merge?? ?? ???? ??? ????? git branch -D? ???
  • 20. Local Branch ! ?? ????? ?? ! ?? branch ! ???? ?? ?? ! git push remote branch ???? ??? ????. ! ??????? ?? ???? ?? ? ??. Remote Branch ! ??? ??? ???? ?? ! ?? remote/branch ! ???? ?? ?? ! git fetch remote ???? ??? ??? ???? ??? ???. ! fetch?? ?? ??? ??? ???? ??? ???? ?? ? ??. ??? ??? ???? ?????!
  • 21. Case Study 10 ??? ???? ??, ???? ?? ? $ ?git ?push ?remote ?branch ?? ???? ??? ???? ?? ? ??? ?? ???? ??? ?? ???? ??? ???? ??? ???? $ ?git ?push ?remote ?local ?branch:remote ?branch ?? ???? ????? ??? ???? ???? ?? ? $ ?git ?push ?remote ?:remote ?branch ??? ???? ???? ?? ? local branch??? ????? ? ???? remote branch? ??? ? ?
  • 22. Case Study 11 ??? ???? ??? ???? ?? ? $ ?git ?fetch ?remote ??? ?????? ?? ???? ??? ??? ?? ? $ ?git ?pull ?[-?©\-?©\rebase] ?remote ?branch ??? ???? ??? ?? ???? Merge??? ?? ? fetch ? merge? ???? ? --rebase : fetch ?? rebase? ? $ ?git ?merge ?remote ?branch ???? ??? ???? ??? ?? ???? merge?? ?? ? $ ?git ?checkout ?-?©\b ?branch ?remote ?branch ??? ???? ???? ?? ???? ??? ?? ?(???? ???) ??? ???? ????? ??? pull, push? ??? ?? ? ?? ??
  • 23. Fetch VS Pull C0 C1 C2 C3 C4 master Remote Repository Local Repository C0 C1 C2 C5 C6 origin/master master Local Repository C0 C1 C2 C3 C4 origin/master C5 C6 master Local Repository C1 C2 C3 C4 origin/master C5 C6 master C7 Fetch Pull Working Directory? ??? ??? ???? ? ?? ???? Merge????? ????. Working Directory? ??? ???? ??? ? ??? ??? ??? ???? ????.
  • 24. Pull Rebase? C0 C1 C2 C3 C4 master Remote Repository Local Repository C0 C1 C2 C5 C6 origin/master master Local Repository Pull
  • 25. ?--rebase C0 C1 C2 C3 C4 C5¡¯ C6¡¯ master origin/master