Blog

Github Flow

Github flow

배포가 λΉˆλ²ˆν•˜κ²Œ λ°œμƒν•˜λŠ” ν”„λ‘œμ νŠΈμ— μ–΄μšΈλ¦¬λŠ” 브랜치 기반의 μ›Œν¬ ν”Œλ‘œμš°λ‹€.
Github Flow

μž‘μ—… 흐름

1.
master λΈŒλžœμΉ˜λŠ” 항상 μ¦‰μ‹œ 배포가 κ°€λŠ₯ν•œ μƒνƒœλ₯Ό μœ μ§€ν•œλ‹€
2.
μƒˆλ‘œμš΄ μž‘μ—…μ„ μ‹œμž‘ν•  λ•ŒλŠ” master λΈŒλžœμΉ˜λ‘œλΆ€ν„° μƒˆλ‘œμš΄ 브랜치λ₯Ό μƒμ„±ν•œλ‹€.
3.
원격 λΈŒλžœμΉ˜μ— μ½”λ“œλ₯Ό μˆ˜μ‹œλ‘œ ν‘Έμ‹œν•œλ‹€
4.
ν”Όλ“œλ°±μ΄λ‚˜ 도움이 ν•„μš”ν•  경우, ν˜Ήμ€ μž‘μ—…μ΄ μ™„λ£Œλœ 경우 Pull Request λ₯Ό μƒμ„±ν•œλ‹€
5.
μž‘μ—…ν•œ λ‚΄μš©μ— λŒ€ν•œ 리뷰가 μ™„λ£Œλ˜λ©΄ master λΈŒλžœμΉ˜μ— merge ν•œλ‹€
6.
master 에 merge κ°€ 되면 μ¦‰μ‹œ 배포λ₯Ό μ§„ν–‰ν•œλ‹€

κ·œμΉ™

1.
master λΈŒλžœμΉ˜λŠ” 항상 배포가 κ°€λŠ₯ν•œ μƒνƒœλ₯Ό μœ μ§€ν•΄μ•Όν•œλ‹€
β€’
master λΈŒλžœμΉ˜μ— 버그가 μžˆμ„ 경우 HEAD λ₯Ό μ΄μ „μœΌλ‘œ λ˜λŒλ¦°λ‹€
β€’
ν…ŒμŠ€νŠΈ μ½”λ“œκ°€ μ—†κ±°λ‚˜ μ‹€νŒ¨ν•œ μ½”λ“œλŠ” master λΈŒλžœμΉ˜μ— merge ν•˜μ§€ μ•ŠλŠ”κ²ƒμ„ μ›μΉ™μœΌλ‘œ ν•œλ‹€
2.
μƒˆλ‘œμš΄ μž‘μ—…μ„ ν•  λ•ŒλŠ” master λΈŒλžœμΉ˜μ—μ„œ μƒˆλ‘œμš΄ 브랜치λ₯Ό μƒμ„±ν•œλ‹€
3.
브랜치λͺ…은 λ‹€λ₯Έ κ°œλ°œμžκ°€ 봀을 λ–„ μ–΄λ–€ 일을 ν•˜λŠ”μ§€ μ•Œ 수 μžˆλ„λ‘ λͺ…ν™•νžˆ μž‘μ„±ν•œλ‹€
β€’
refactor-authentication
β€’
user-content-cache-key
β€’
make-retina-avatars
4.
μƒμ„±ν•œ λΈŒλžœμΉ˜λŠ” λͺ…μ‹œλœ κΈ°λŠ₯ μ΄μ™Έμ˜ 것을 μˆ˜μ •ν•˜μ§€ μ•ŠλŠ”λ‹€
5.
master 에 merge κ°€ 된 ν›„ 배포λ₯Ό μ§„ν–‰ν•œ ν›„ 정상 λ™μž‘ν•˜λŠ”μ§€ ν™•μΈν•œλ‹€

μ„ ν–‰ 쑰건

β€’
ν…ŒμŠ€νŠΈ μžλ™ν™”
β—¦
eg) Travis CI, Jenkins CI
β€’
배포 μžλ™ν™”
β—¦
eg) fabric, Ansible, Capistrano

기타

β€’
git flow 에 λΉ„ν•΄ ꡉμž₯히 λ‹¨μˆœν•˜κ³  κ°„λ‹¨ν•˜κΈ° λ•Œλ¬Έμ— μ‰½κ²Œ λ„μž…ν•  수 μžˆλ‹€
β€’
Pull Request λŠ” μ΅œμ†Œ λ‹¨μœ„λ‘œ μƒμ„±ν•˜λŠ”κ²Œ μ’‹λ‹€
β—¦
λ„ˆλ¬΄ λ°©λŒ€ν•œν•  경우 리뷰어가 ꡉμž₯히 고톡받고 νž˜λ“€μ–΄ν•œλ‹€
β€’
νŒ€ λ‚΄μ—μ„œ 개발 κ·œμΉ™μ„ μ •ν•˜μ—¬ Wiki 둜 κ³΅μœ ν•˜λŠ”κ²ƒλ„ 쒋은 방법이닀

μ°Έκ³ 

β€’
https://guides.github.com/introduction/flow/