Git Branch Strategy: Ship / Show / Ask

๋“ค์–ด๊ฐ€๋ฉฐ

PR์€ ์ •๋ง ์ข‹์€ ๊ธฐ๋Šฅ์ด์ง€๋งŒ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค.

๋ณดํ†ต PR์„ ๋‚ ๋ฆฌ๋ฉด ๋ฆฌ๋ทฐ๋ฅผ ํ•˜๊ณ , ๋ฆฌ๋ทฐ์ž๋ฅผ ๋‘ ๋ช… ์ด์ƒ์œผ๋กœ ์ง€์ •ํ•œ๋‹ค๋˜๊ฐ€ ํ•˜๋Š” ๋ฃฐ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

๋˜ํ•œ ์Šน์ธ์„ ๋ˆŒ๋Ÿฌ์•ผ ๋จธ์ง€๊ฐ€ ๋˜๋ฉด์„œ ๋ฐ˜์˜์ด ๋˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ธ ํ”„๋กœ์„ธ์Šค์ด๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ Ready to ship์ด ์•ฝํ•ด์กŒ๋‹ค.

๋ฐ˜๋Œ€๋กœ PR์„ ํ•˜๊ณ , ๋ฆฌ๋ทฐ๋ฅผ ๋Œ€๊ธฐํ•˜๋ฉด์„œ CI๊ฐ€ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ํ–ˆ๋˜ ํ†ตํ•ฉ ์ง€์—ฐ์ด ๋ฐœ์ƒํ•œ๋‹ค.

์—…๋ฌด๋ฅผ ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ๋ถˆํŽธํ–ˆ๋˜ ์ ์ค‘ ํ•˜๋‚˜๊ฐ€ PR์ด ๊ทธ๋•Œ ๊ทธ๋•Œ ๋ฆฌ๋ทฐ-๋จธ์ง€๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ๋ฐ, ์ž‘์—…์„ ํ•˜๋ฉด์„œ ์Œ“๋‹ค๋ณด๋ฉด PR์ด ์ ์  ์ปค์ง€๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿฌ๋‹ค๋ณด๋ฉด ๋ฌด์ง€์„ฑ LGTM์ด ๋‚œ๋ฌดํ•œ๋‹ค. ์†”์งํžˆ ์ œ๋Œ€๋กœ ๋ณด๋Š” ์‚ฌ๋žŒ์ด ์ž˜ ์—†๋‹ค.

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ธŒ๋žœ์น˜ ์ „๋žต์œผ๋กœ Ship / Show / Ask ๋ผ๋Š” ๋ธŒ๋žœ์น˜ ์ „๋žต์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

์›๊ธ€์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ์กฐํ•˜๋ฉด ๋œ๋‹ค.

Ship

Ship ๋ฐฉ์‹์—์„œ๋Š” ๋ณ€๊ฒฝ์„ ๋ฐ”๋กœ ๋จธ์ง€ํ•œ๋‹ค.

์ฝ”๋“œ ๋ฆฌ๋ทฐ ์š”์ฒญ๋„ ์—†๋‹ค.

์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ์ด ์•ˆ์ „ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ผ๋ฐ˜์ ์ธ CI ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ƒํ™ฉ์— ์ข‹๋‹ค.

  • ์ •ํ•ด์ง„ ํŒจํ„ด์„ ์‚ฌ์šฉํ•œ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ (์ด๋ฏธ ์ต์ˆ™ํ•˜๊ณ , ์ž์ฃผ ์‚ฌ์šฉ๋˜์–ด์˜จ)

  • ์‚ฌ์†Œํ•œ ๋ฒ„๊ทธ ์ˆ˜์ •

  • ๋ฌธ์„œ ๊ฐฑ์‹ 

  • ๋™๋ฃŒ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ˜์˜ํ•ด์„œ ์ฝ”๋“œ ๊ฐœ์„ 

Show

์ด ๋ฐฉ์‹์€ PR์€ ๋‚ ๋ฆฌ์ง€๋งŒ ๋จธ์ง€๋ฅผ ๋ฐ”๋กœํ•œ๋‹ค.

๋ณ€๊ฒฝ์„ ๋น ๋ฅด๊ฒŒ ์ ์šฉํ•˜๋ฉด์„œ๋„, ์–ธ์ œ๋“ ์ง€ PR์„ ๋‹ค์‹œ ์—ด์–ด ์˜๊ฒฌ๊ณผ ๋Œ€ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์—ฌ์ง€๋ฅผ ๋งŒ๋“ ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ƒํ™ฉ์— ์ข‹๋‹ค.

  • ์ฝ”๋“œ๋ฅผ ๋” ์ข‹๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋™๋ฃŒ์˜ ์˜๊ฒฌ์„ ๋ฐ›๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ

  • ์ƒˆ๋กœ ์‚ฌ์šฉํ•œ ํŒจํ„ด์ด๋‚˜ ์ ‘๊ทผ๋ฒ•์„ ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ

  • ๋ฆฌํŒฉํ† ๋งํ•œ ๋‚ด์šฉ์„ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ

  • ํฅ๋ฏธ์ง„์ง„ํ•œ ๋ฒ„๊ทธ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ณ ์ณค๋Š”์ง€ ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ

Ask

Ask๋Š” ์ผ๋ฐ˜์ ์ธ PR๊ณผ ๋™์ผํ•œ ๋ฐฉ์‹์ด๋‹ค.

PR์„ ๋‚ ๋ฆฌ๊ณ , ๋จธ์ง€ํ•˜์ง€ ์•Š๊ณ  ์˜๊ฒฌ์„ ๊ธฐ๋‹ค๋ฆฐ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ƒํ™ฉ์— ์ข‹๋‹ค.

  • ๋™์ž‘ํ•  ์ง€ ํ™•์ธ๋ฐ›๊ณ  ์‹ถ์„ ๋•Œ

  • ์ƒˆ ์ ‘๊ทผ๋ฒ•์„ ์–ด๋–ป๊ฒŒ ๋А๋‚„์ง€ ๊ถ๊ธˆํ•  ๋•Œ

  • ๋” ๋‚˜์€ ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์‹ถ์„ ๋•Œ

  • ์˜ค๋Š˜ ๋๋ƒˆ๋‹ค, ๋‚ด์ผ ๋จธ์ง€ํ•  ๊ฒƒ์ด๋‹ค. (์ผ์ข…์˜ ์„ ์–ธ)

๊ทœ์น™

์ด ๋ฃฐ๋“ค์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์šฐ๋ฆฌ๊ฐ€ ๋Œ€ํ•ด์™”๋˜ PR-LGTM-Merge๋กœ ์ด์–ด์ง€๋Š” ๊ณ ๊ตฌ๋งˆ ํ”„๋กœ์„ธ์Šค์™€๋Š” ๊ด€์ ์„ ๋‹ฌ๋ฆฌํ•œ๋‹ค.

๊ทœ์น™๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • ์Šน์ธ / ์ฝ”๋“œ ๋ฆฌ๋ทฐ๊ฐ€ PR์„ ๋จธ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์กฐ๊ฑด์ด์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค.

    • LGTM์ด ๋จธ์ง€์˜ ์กฐ๊ฑด์ด ๋˜๋ฉด ์•ˆ๋œ๋‹ค.

  • ๋ณธ์ธ์ด Openํ•œ PR์€ ๋ณธ์ธ์ด ๋จธ์ง€ํ•œ๋‹ค. ๋ณ€๊ฒฝ์— ๋Œ€ํ•ด์„œ๋„ ๋ณธ์ธ์ด ์ œ์–ดํ•ด์•ผ ํ•œ๋‹ค.

  • ์ถœ์‹œ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ข‹์€ CI/CD ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

  • ๋ธŒ๋žœ์น˜๋Š” ๊ธธ์ง€ ์•Š๊ฒŒ ์œ ์ง€ํ•ด์•ผํ•œ๋‹ค. (์ž์ฃผ Rebase ํ•ด์•ผํ•œ๋‹ค)

๋Œ€ํ™”

์› ๊ธ€์—์„œ๋Š” ๋Œ€ํ™”์— ๋Œ€ํ•ด์„œ๋„ ๊ฐ•์กฐํ•œ๋‹ค.

PR์ด ๋ณ€๊ฒฝ์— ๋Œ€ํ•ด ๋…ผํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์šฉํ•œ ๋ฐฉ๋ฒ•์ด๊ธด ํ•˜๋‚˜, ๋Œ€ํ™”๋ฅผ ๋Œ€์ฒดํ•˜์ง€๋Š” ๋ชปํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์‚ฌ์‹ค ์ด๋ฏธ ๋ธŒ๋žœ์น˜ํ•ด์„œ ๋งŒ๋“ค์–ด์ง„ ๊ฒฐ๊ณผ๋Š” ๋” ๋‚˜์€ ์•ˆ์„ ์ฐพ๊ธฐ๋„ ํž˜๋“ค๋‹ค.

๋ธŒ๋žœ์น˜๊ฐ€ ๊ธธ์–ด์ง€๊ณ  ์ปค์งˆ์ˆ˜๋ก ๋” ์–ด๋ ต๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๋Œ€ํ™”ํ•ด์•ผ ๋” ๋‚˜์€ ์•ˆ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

์ฆ‰, PR์ด์ „์— ์˜๊ฒฌ์„ ์ž์œ ๋กญ๊ฒŒ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ์ค‘์š”ํ•˜๋‹ค๋Š” ์–˜๊ธฐ์ด๋‹ค.

Last updated