Skip to content

Latest commit

ย 

History

History
153 lines (100 loc) ยท 10.3 KB

File metadata and controls

153 lines (100 loc) ยท 10.3 KB

git-flow

์ด๋Š” ์šฐ์•„ํ•œ ํ˜•์ œ๋“ค ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ์— ์“ฐ์—ฌ์ง„ ๊ธ€์„ ์ค‘์ ์œผ๋กœ git-flow๋ฅผ ์„ค๋ช…ํ•ด๋ณด๊ฒ ๋‹ค.

๋จผ์ € ์šฐ์•„ํ•œ ํ˜•์ œ๋“ค์—์„œ๋Š” ์ž‘์—…ํ•  ๋•Œ ์„œ๋กœ ๊ฐ„์˜ ์•ฝ์†์ด ์žˆ๋‹ค.

  1. ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— JIRA ํ‹ฐ์ผ“์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  2. ํ•˜๋‚˜์˜ ํ‹ฐ์ผ“์€ ๋˜๋„๋ก ํ•˜๋‚˜์˜ ์ปค๋ฐ‹์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
  3. ์ปค๋ฐ‹ ๊ทธ๋ž˜ํ”„๋Š” ์ตœ๋Œ€ํ•œ ๋‹จ์ˆœํ•˜๊ฒŒ ๊ฐ€์ ธ๊ฐ‘๋‹ˆ๋‹ค.
  4. ์„œ๋กœ ๊ณต์œ ํ•˜๋Š” ๋ธŒ๋žœ์น˜์˜ ์ปค๋ฐ‹ ๊ทธ๋ž˜ํ”„๋Š” ํ•จ๋ถ€๋กœ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  5. ๋ฆฌ๋ทฐ์–ด์—๊ฒŒ ๊ผญ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค.
  6. ์ž์‹ ์˜ Pull Request๋Š” ์Šค์Šค๋กœ merge ํ•ฉ๋‹ˆ๋‹ค

์ง€๊ธˆ๋ถ€ํ„ฐ git-flow์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ๋‹ค.

Git-flow ์ „๋žต

Git-flow์—๋Š” 5๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ๋ธŒ๋žœ์น˜๊ฐ€ ์กด์žฌํ•œ๋‹ค. ํ•ญ์ƒ ์œ ์ง€๋˜๋Š” ๋ฉ”์ธ ๋ธŒ๋žœ์น˜๋“ค(master, develop)๊ณผ ์ผ์ • ๊ธฐ๊ฐ„ ๋™์•ˆ๋งŒ ์œ ์ง€๋˜๋Š” ๋ณด์กฐ ๋ธŒ๋žœ์น˜๋“ค(feature, release, hotfix)์ด ์žˆ๋‹ค.

  • master : ์ œํ’ˆ์œผ๋กœ ์ถœ์‹œ๋  ์ˆ˜ ์žˆ๋Š” ๋ธŒ๋žœ์น˜
  • develop : ๋‹ค์Œ ์ถœ์‹œ ๋ฒ„์ „์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ธŒ๋žœ์น˜
  • feature : ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ธŒ๋žœ์น˜
  • release : ์ด๋ฒˆ ์ถœ์‹œ ๋ฒ„์ „์„ ์ค€๋น„ํ•˜๋Š” ๋ธŒ๋žœ์น˜
  • hotfix : ์ถœ์‹œ ๋ฒ„์ „์—์„œ ๋ฐœ์ƒํ•œ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ • ํ•˜๋Š” ๋ธŒ๋žœ์น˜

gitflow

์ฒ˜์Œ์—๋Š” master์™€ develop ๋ธŒ๋žœ์น˜๊ฐ€ ์กด์žฌํ•œ๋‹ค. ๋ฌผ๋ก  develop ๋ธŒ๋žœ์น˜๋Š” master์—์„œ๋ถ€ํ„ฐ ์‹œ์ž‘๋œ ๋ธŒ๋žœ์น˜์ด๋‹ค. develop ๋ธŒ๋žœ์น˜์—์„œ๋Š” ์ƒ์‹œ๋กœ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹๋“ค์ด ์ถ”๊ฐ€๋œ๋‹ค. ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ์ž‘์—…์ด ์žˆ๋Š” ๊ฒฝ์šฐ develop ๋ธŒ๋žœ์น˜์—์„œ feature ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. feature ๋ธŒ๋žœ์น˜๋Š” ์–ธ์ œ๋‚˜ develop ๋ธŒ๋žœ์น˜์—์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ฒŒ ๋œ๋‹ค. ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ์ž‘์—…์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋ฉด feature ๋ธŒ๋žœ์น˜๋Š” develop ๋ธŒ๋žœ์น˜๋กœ merge ๋œ๋‹ค. develop์— ์ด๋ฒˆ ๋ฒ„์ „์— ํฌํ•จ๋˜๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ์ด merge ๋˜์—ˆ๋‹ค๋ฉด QA๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด develop ๋ธŒ๋žœ์น˜์—์„œ๋ถ€ํ„ฐ release ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. QA๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋ฐœ์ƒํ•œ ๋ฒ„๊ทธ๋“ค์€ release ๋ธŒ๋žœ์น˜์— ์ˆ˜์ •๋œ๋‹ค. QA๋ฅผ ๋ฌด์‚ฌํžˆ ํ†ต๊ณผํ–ˆ๋‹ค๋ฉด release ๋ธŒ๋žœ์น˜๋ฅผ master์™€ develop ๋ธŒ๋žœ์น˜๋กœ merge ํ•œ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ์ถœ์‹œ๋œ master ๋ธŒ๋žœ์น˜์—์„œ ๋ฒ„์ „ ํƒœ๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

์‹ค์ œ๋กœ ์šฐ์•„ํ•œ ํ˜•์ œ๋“ค์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž

์•„๋ž˜์˜ Repository์™€ Branch๋Š” ์•ž์œผ๋กœ ์„ค๋ช…์„ ํ•  ๋•Œ ๋‚˜์˜ค๊ธฐ ๋•Œ๋ฌธ์— ์•Œ์•„ ๋‘์‹œ๊ณ  ๊ฐ€๋ฉด ํ•œ๊ฒฐ ์ˆ˜์›”ํ•˜๊ฒŒ ๋ณด์‹ค ์ˆ˜ ์žˆ์„ ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

  • Repositories
    1. upstream (Upstream Repository)
    2. origin (Origin Repository)
  • Branches
    1. feature-user (์‚ฌ์šฉ์ž ๊ด€๋ จ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” feature branch)
    2. bfm-100_login_layout (์‚ฌ์šฉ์ž ๊ด€๋ จ ๊ธฐ๋Šฅ ์ค‘ ๋ ˆ์ด์•„์›ƒ ์ž‘์—… branch)

ํ‹ฐ์ผ“ ์ฒ˜๋ฆฌํ•˜๊ธฐ

Github-flow์—์„œ Git-flow๋กœ ๋ณ€๊ฒฝ๋์ง€๋งŒ ํ•˜๋‚˜์˜ ํ‹ฐ์ผ“์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์ด์ „๊ณผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ ํ‹ฐ์ผ“์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋Š” Github-flow๋ฅผ ํ•˜๊ณ  ์žˆ์„ ๋•Œ์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ๊ด€๋ฆฌ๋˜๋Š” ๋ธŒ๋žœ์น˜๋“ค์ด ๋Š˜์–ด๋‚จ์— ๋”ฐ๋ผ ์–ด๋А ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…์„ ํ•ด์•ผ ํ•˜๋Š”์ง€ ํ•ญ์ƒ ์ฃผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•ž์„œ โ€˜์ž‘์—…์„ ํ•  ๋•Œ ์ง€์ผœ์•ผ ํ•  ์„œ๋กœ ๊ฐ„์˜ ์•ฝ์†โ€™์—์„œ โ€˜ํ•˜๋‚˜์˜ ํ‹ฐ์ผ“์€ ๋˜๋„๋ก ํ•˜๋‚˜์˜ ์ปค๋ฐ‹์œผ๋กœ ํ•œ๋‹คโ€™๋ผ๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์ „์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ‹ฐ์ผ“์œผ๋กœ ์ž‘์—…์„ ๋จผ์ € ๋‚˜๋ˆ„๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋‚˜๋ˆ ์ง„ ์ž‘์—… ํ‹ฐ์ผ“ ์ค‘ โ€˜๋กœ๊ทธ์ธ ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑโ€™์ด๋ผ๋Š” ํ‹ฐ์ผ“์ด ์žˆ๊ณ  ์ด ํ‹ฐ์ผ“์„ ์ฒ˜๋ฆฌํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. upstream/feature-user ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—… ๋ธŒ๋žœ์น˜(bfm-100_login_layout)๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    (feature-user)]$ git fetch upstream
    (feature-user)]$ git checkout -b bfm-100_login_layout โ€“track upstream/feature-user
    
  2. ์ž‘์—… ๋ธŒ๋žœ์น˜์—์„œ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. (๋š๋”ฑ๋š๋”ฑ ๐Ÿ”จ)

  3. ์ž‘์—… ๋ธŒ๋žœ์น˜์—์„œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค. (๋ณดํ†ต์€ vi editor์—์„œ ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€๋ฅผ ์ž‘์„ฑ ํ•จ) (bfm-100_login_layout)]$ git commit -m "BFM-100 ๋กœ๊ทธ์ธ ํ™”๋ฉด ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑ"

  4. ๋งŒ์•ฝ ์ปค๋ฐ‹์ด ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์–ด๋ ค ๊ฐœ๋กœ ๋‚˜๋‰˜์–ด์ ธ ์žˆ๋‹ค๋ฉด squash๋ฅผ ํ•ฉ๋‹ˆ๋‹ค. (์ปค๋ฐ‹ 2๊ฐœ๋ฅผ ํ•ฉ์ณ์•ผ ํ•œ๋‹ค๋ฉด) (bfm-100_login_layout)]$ git rebase -i HEAD~2

  5. ์ž‘์—… ๋ธŒ๋žœ์น˜๋ฅผ upstream/feature-user์— rebaseํ•ฉ๋‹ˆ๋‹ค. (bfm-100_login_layout)]$ git pull โ€“rebase upstream feature-user

  6. ์ž‘์—… ๋ธŒ๋žœ์น˜๋ฅผ origin์— pushํ•ฉ๋‹ˆ๋‹ค. (bfm-100_login_layout)]$ git push origin bfm-100_login_layout

  7. Github์—์„œ bfm-100_login_layout ๋ธŒ๋žœ์น˜๋ฅผ feature-user์— mergeํ•˜๋Š” Pull Request๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  8. ๊ฐ™์€ feature๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๋™๋ฃŒ์—๊ฒŒ ๋ฆฌ๋ทฐ ์Šน์ธ์„ ๋ฐ›์€ ํ›„ ์ž์‹ ์˜ Pull Request๋ฅผ mergeํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ํ˜ผ์ž feature๋ฅผ ๊ฐœ๋ฐœํ•œ๋‹ค๋ฉด 1~2๋ช…์˜ ๋™๋ฃŒ์—๊ฒŒ ๋ฆฌ๋ทฐ ์Šน์ธ์„ ๋ฐ›์€ ํ›„ Pull Request๋ฅผ mergeํ•ฉ๋‹ˆ๋‹ค. ์œ„์˜ ์ ˆ์ฐจ์—์„œ 4, 5๋ฒˆ์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ด์œ ๋Š” ์ปค๋ฐ‹ ๊ทธ๋ž˜ํ”„๋ฅผ ๋‹จ์ˆœํ•˜๊ฒŒ ๊ฐ€์ ธ๊ฐ€๊ณ  ์˜๋ฏธ ์žˆ๋Š” ์ปค๋ฐ‹๋“ค๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ์ž…๋‹ˆ๋‹ค.

4๋ฒˆ ์ž‘์—…์„ ์˜ˆ๋กœ ๋“ค๋ฉด, โ€˜BFM-100 ๋กœ๊ทธ์ธ ํ™”๋ฉด ๋ ˆ์ด์•„์›ƒ ์ƒ์„ฑโ€™ ์ž‘์—…์„ ํ•  ๋•Œ ๋กœ๊ทธ์ธ ํ™”๋ฉด์˜ ๋ ˆ์ด์•„์›ƒ์„ ์ƒ์„ฑํ•œ ์ปค๋ฐ‹ ํ•˜๋‚˜์™€, view์˜ ์•ฝ๊ฐ„์˜ ๊ฐ„๊ฒฉ์„ ์กฐ์ •ํ•œ ์ปค๋ฐ‹ ํ•˜๋‚˜, ๊ทธ๋ฆฌ๊ณ  view์˜ id๋ฅผ ๋ณ€๊ฒฝํ•œ ์ปค๋ฐ‹ ํ•˜๋‚˜, ์ด๋ ‡๊ฒŒ 3๊ฐœ์˜ ์ปค๋ฐ‹์œผ๋กœ ๋ถ„๋ฆฌ๋œ ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ์ด 3๊ฐœ์˜ ์ปค๋ฐ‹์ด ๊ทธ ์˜๋ฏธ๋ฅผ ๋‚˜๋ˆŒ ํ•„์š”๊ฐ€ ์—†๊ฑฐ๋‚˜ ์ฝ”๋“œ๋ฆฌ๋ทฐ๋ฅผ ๋„์™€์ฃผ์ง€๋„ ๋ชปํ•œ๋‹ค๋ฉด ์ปค๋ฐ‹์„ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ๋ถˆํ•„์š”ํ•˜๋‹ค๊ณ  ํŒ๋‹จํ•˜๊ณ  ํ•˜๋‚˜์˜ ์ปค๋ฐ‹์œผ๋กœ ํ•ฉ์น˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ํ•ญ์ƒ ํ•˜๋‚˜์˜ ์ปค๋ฐ‹์œผ๋กœ ํ•ฉ์ณ์•ผ๋งŒํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ํ‹ฐ์ผ“์— ๋Œ€ํ•œ ์ž‘์—…์ด๋ผ๋„ ์ปค๋ฐ‹์ด ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๋Š” ๊ฒŒ ๋‚ซ๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋“ ๋‹ค๋ฉด 2๊ฐœ ์ด์ƒ์˜ ์ปค๋ฐ‹์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋Œ€๋ถ€๋ถ„์€ ํ‹ฐ์ผ“์„ ๋” ์ž‘๊ฒŒ ๋‚˜๋ˆ„์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.

5๋ฒˆ ์ž‘์—…๋„ ์˜ˆ๋ฅผ ๋“ค์–ด๋ณด๋ฉด, ๋™๋ฃŒ์™€ ๊ฐ™์ด ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๋ฉด ํ•˜๋‚˜์˜ feature ๋ธŒ๋žœ์น˜์— ์ปค๋ฐ‹์„ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์„œ๋กœ ๊ฐ™์€ ์ปค๋ฐ‹์—์„œ ์‹œ์ž‘ํ–ˆ๋‹ค๊ฐ€ feature ๋ธŒ๋žœ์น˜์— ํ•˜๋‚˜์”ฉ merge ๋˜๊ธฐ๋„ ํ•˜๊ณ  ์–ฝํžˆ๊ณ ์„ค์ผœ์„œ merge ๋˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ปค๋ฐ‹ ๊ทธ๋ž˜ํ”„๊ฐ€ ๋ณต์žกํ•ด์ง€๊ณ  ์ด๋ ฅ ํ™•์ธ์„ ํ•  ๋•Œ๋„ ์–ด๋ ต๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ปค๋ฐ‹์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ ์ž‘์—…ํ•œ ์ปค๋ฐ‹์ด feature์˜ ์ตœ์‹  ์ƒํƒœ์—์„œ ์‹œ์ž‘ํ•˜๋„๋ก rebase๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜ ๊ทธ๋ž˜ํ”„๋ฅผ ๋ณด์‹œ๋ฉด rebase๋ฅผ ํ–ˆ์„ ๋•Œ ๊ทธ๋ž˜ํ”„๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋‹จ์ˆœํ•ด์ง€๋Š”์ง€ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

rebase

develop ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ feature๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ (Optional)

์ž‘์—…์„ ํ•  ๋•Œ ๋ธŒ๋žœ์น˜์˜ ์ˆ˜๋ช…์€ ๋˜๋„๋ก ์งง๊ฒŒ ๊ฐ€์ ธ๊ฐ€๋Š” ๊ฒŒ ์ข‹์ง€๋งŒ, feature ๋ธŒ๋žœ์น˜์—์„œ ๊ธฐ๋Šฅ์„ ์™„๋ฃŒํ•˜๋Š”๋ฐ ํ•ด์•ผ ํ•  ์ž‘์—…๋“ค์ด ๋งŽ์•„์„œ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๊ฒฝ์šฐ ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค ๋ณด๋ฉด develop์— ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ๋“ค์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ์ƒ๊ธฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿด ๋•Œ๋Š” feature ๋ธŒ๋žœ์น˜์— develop์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ๋“ค์„ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. feature-user ๋ธŒ๋žœ์น˜์— upstream/develop ๋ธŒ๋žœ์น˜๋ฅผ merge ํ•ฉ๋‹ˆ๋‹ค. (feature-user)]$ git fetch upstream (feature-user)]$ git merge โ€“no-ff upstream/develop

  2. upstream/develop์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด merge๋œ feature-user๋ฅผ upstream์— push ํ•ฉ๋‹ˆ๋‹ค. (feature-user)]$ git push upstream feature-user

์™„๋ฃŒ๋œ ๊ธฐ๋Šฅ์„ ์ด๋ฒˆ ์ถœ์‹œ ๋ฒ„์ „์— ํฌํ•จ์‹œํ‚ค๊ธฐ

๋“œ๋””์–ด feature-user ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…ํ•˜๋˜ ๊ธฐ๋Šฅ์ด ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์   feature ๋ธŒ๋žœ์น˜๋ฅผ ์ด๋ฒˆ ์ถœ์‹œ ๋ฒ„์ „์— ํฌํ•จ์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ develop์— merge ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. develop ๋ธŒ๋žœ์น˜์— upstream/feature-user ๋ธŒ๋žœ์น˜๋ฅผ merge ํ•ฉ๋‹ˆ๋‹ค. (develop)]$ git fetch upstream (develop)]$ git merge โ€“no-ff upstream/feature-user

  2. upstream/feature-user ๊ธฐ๋Šฅ์ด merge๋œ develop๋ฅผ upstream์— push ํ•ฉ๋‹ˆ๋‹ค. (develop)]$ git push upstream develop

QA ์‹œ์ž‘ํ•˜๊ธฐ

์ด๋ฒˆ ๋ฒ„์ „์— ํฌํ•จ๋˜์–ด์•ผ ํ•  ๊ธฐ๋Šฅ๋“ค์ด ๋ชจ๋‘ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ๋ถ€ํ„ฐ ์ถœ์‹œ ๋‹ด๋‹น์ž๊ฐ€ ํ•ด์•ผ ํ•  ์ผ์ด ๋งŽ์Šต๋‹ˆ๋‹ค. ์ถœ์‹œ ๋‹ด๋‹น์ž๋Š” QA๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด ๋จผ์ € release ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ  upstream์— pushํ•˜์—ฌ release ๋ธŒ๋žœ์น˜๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

  1. release-1.0.0 ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. (develop)]$ git fetch upstream (develop)]$ git checkout -b release-1.0.0 โ€“track upstream/develop

  2. release-1.0.0 ๋ธŒ๋žœ์น˜๋ฅผ upstream์— pushํ•ฉ๋‹ˆ๋‹ค. (release-1.0.0)]$ git push upstream release-1.0.0

QA ์ค‘ ๋ฒ„๊ทธ ์ˆ˜์ •ํ•˜๊ธฐ

๊ฐœ๋ฐœ์„ ์™„๋ฃŒํ•œ ํ›„ QA ์ค‘ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฉด ์ข‹๊ฒ ์ง€๋งŒ ํ•ญ์ƒ ์ƒ๊ฐ์ง€ ๋ชปํ•œ ์˜ˆ์™ธ ์ƒํ™ฉ๋“ค์ด ๋ฐœ์ƒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ์™ธ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•  ๋•Œ๋งˆ๋‹ค ๋ฒ„๊ทธ ํ‹ฐ์ผ“์ด ํ•˜๋‚˜์”ฉ ์ƒ์„ฑ๋˜๋Š”๋ฐ ์ด ํ‹ฐ์ผ“๋“ค์„ ๋ชจ๋‘ ํ•ด๊ฒฐํ•ด์•ผ๋งŒ ์•ฑ์„ ์ถœ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„๊ทธ ํ‹ฐ์ผ“๋“ค๋„ ํ‹ฐ์ผ“์ด๊ธฐ ๋•Œ๋ฌธ์— โ€˜1. ํ‹ฐ์ผ“ ์ฒ˜๋ฆฌํ•˜๊ธฐโ€™์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

  1. release ๋ธŒ๋žœ์น˜์—์„œ ๋ฒ„๊ทธ ํ‹ฐ์ผ“์— ๋Œ€ํ•œ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. (release-1.0.0)]$ git checkout -b bfm-101_bug_login_id_max_length

  2. ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. (๋š๋”ฑ๋š๋”ฑ ๐Ÿ”จ)

  3. ์ž‘์—… ๋ธŒ๋žœ์น˜์— ๋ฒ„๊ทธ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค. (bfm-101_bug_login_id_max_length)]$ git commit -m "BFM-101 ๋กœ๊ทธ์ธ ์•„์ด๋”” ๊ธธ์ด ์ œํ•œ ๋ฒ„๊ทธ ์ˆ˜์ •"

  4. ์ž‘์—… ๋ธŒ๋žœ์น˜๋ฅผ origin์— push ํ•ฉ๋‹ˆ๋‹ค. (bfm-101_bug_login_id_max_length)]$ git push origin bfm-101_bug_login_id_max_length

  5. Github์—์„œ bfm-101_bug_login_id_max_length ๋ธŒ๋žœ์น˜๋ฅผ release-1.0.0์— merge ํ•˜๋Š” Pull Request๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  6. ๋™๋ฃŒ์—๊ฒŒ ๋ฆฌ๋ทฐ ์Šน์ธ์„ ๋ฐ›์€ ํ›„ ์ž์‹ ์˜ Pull Request๋ฅผ merge ํ•ฉ๋‹ˆ๋‹ค.

์•ฑ ์ถœ์‹œ

๋ฐœ์ƒํ•˜๋Š” ๋ฒ„๊ทธ๋“ค์„ ๋ชจ๋‘ ์ˆ˜์ •ํ–ˆ๋‹ค๋ฉด ์ด์   ์ถœ์‹œ๋ฅผ ์ค€๋น„ํ•  ๋•Œ์ž…๋‹ˆ๋‹ค. release ๋ธŒ๋žœ์น˜๋ฅผ master ๋ธŒ๋žœ์น˜์™€ develop ๋ธŒ๋žœ์น˜์— mergeํ•˜๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ master ๋ธŒ๋žœ์น˜์—์„œ ๋ฒ„์ „ ํƒœ๊ทธ๋ฅผ ๋‹ฌ์•„์ค๋‹ˆ๋‹ค.

  1. release ๋ธŒ๋žœ์น˜๋ฅผ ์ตœ์‹  ์ƒํƒœ๋กœ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค. (release-1.0.0)]$ git pull upstream release-1.0.0

  2. release ๋ธŒ๋žœ์น˜๋ฅผ develop ๋ธŒ๋žœ์น˜์— merge ํ•ฉ๋‹ˆ๋‹ค. (release-1.0.0)]$ git checkout develop (develop)]$ git pull upstream develop (develop)]$ git merge โ€“no-ff release-1.0.0

  3. develop ๋ธŒ๋žœ์น˜๋ฅผ upstream์— push ํ•ฉ๋‹ˆ๋‹ค. (develop)]$ git push upstream develop

  4. release ๋ธŒ๋žœ์น˜๋ฅผ master ๋ธŒ๋žœ์น˜์— merge ํ•ฉ๋‹ˆ๋‹ค. (develop)]$ git checkout master (master)]$ git pull upstream master (master)]$ git merge โ€“no-ff release-1.0.0

  5. 1.0.0 ํƒœ๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. (master)]$ git tag 1.0.0

  6. master ๋ธŒ๋žœ์น˜์™€ 1.0.0 ํƒœ๊ทธ๋ฅผ upstream์— push ํ•ฉ๋‹ˆ๋‹ค. (master)]$ git push upstream master 1.0.0