git flow๋กœ hotfix ํ•˜๊ธฐ๐Ÿš‘

์ตœ์ •์œคยท2023๋…„ 3์›” 4์ผ
0
post-thumbnail

๊ทธ๋™์•ˆ ์ˆ˜๋™์œผ๋กœ hotfix ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ค์–ด์„œ hotfix์ž‘์—…์„ ์ง„ํ–‰ํ–ˆ๋Š”๋ฐ,
์ด๋ฒˆ์—๋Š” git flow๋ฅผ ์ด์šฉํ•ด๋ณด์•˜๋‹ค.
git-flow๋กœ hotfixํ•˜๋Š” ๊ณผ์ •์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

์ฐธ๊ณ : git flow extension์ด ์„ค์น˜๋˜์–ด์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ „์ œ๋กœํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.

โœจHow to do

0๏ธโƒฃ git flow init ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

git flow init์€ Git Flow branching Model์— ๋งž๊ฒŒ git repo๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด์ด๋‹ค.

์ด ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด, Git Flow branching Model์˜ ์ปจ๋ฒค์…˜์„ ๋”ฐ๋ฅด๋Š” branch๊ฐ€ ์ƒ์„ฑ๋˜๊ณ , feature, hotfix, release์™€ ๊ฐ™์€ ๋ธŒ๋žœ์น˜์˜ prefix(์ ‘๋‘์–ด)๊ฐ€ ์ง€์ •๋œ๋‹ค.

feature, hotfix, release๊ฐ€ ๋ธŒ๋žœ์น˜์˜ prefix(์ ‘๋‘์–ด) ์ธ ์ด์œ  > feature/popup, hotfix/1.0.2, release/1.3.0 ๋“ฑ์˜ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ

๋˜ํ•œ, ์ด ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•œ ๋’ค์—๋Š”, ์ด git flow extension์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ช…๋ น์–ด๋“ค์„ ์ด์šฉํ•˜์—ฌ ์‰ฝ๊ฒŒ Git Flow branching Model ๋Œ€๋กœ ๋ธŒ๋žœ์น˜๋“ค์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

์•„, ์ด๋ฏธ ์ด ๋ช…๋ น์–ด๊ฐ€ ์‹คํ–‰๋œ ์ ์ด ์žˆ๋‹ค๋ฉด, ๊ตณ์ด ๋‹ค์‹œ ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค. ๋ง๊ทธ๋Œ€๋กœ ์ดˆ๊ธฐํ™”์ด๋‹ˆ๊นŒ!


1๏ธโƒฃ git flow hotfix start ๋ฒ„์ „๋ช… ์„ ์‹คํ–‰ํ•œ๋‹ค.

์ด ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด, hotfix/๋ฒ„์ „๋ช…์˜ ๋ธŒ๋žœ์น˜๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.

์ด๋•Œ ํ•ด๋‹น ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ธŒ๋žœ์น˜๋ช…์ด ๊ผญ main์ด ์•„๋‹ˆ์–ด๋„ ๋œ๋‹ค.
๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์—์„œ ์‹คํ–‰ํ•ด๋„, ์•Œ์•„์„œ main๋ธŒ๋žœ์น˜์—์„œ ๋”ฐ์™€์ง„๋‹ค.
์ด๋Ÿฌํ•œ ์‹ค์ˆ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋Š” ์š”์†Œ๊ฐ€ git flow ์‚ฌ์šฉ์˜ ์žฅ์ ์ด ์•„๋‹๊นŒ ์‹ถ๋‹ค.


2๏ธโƒฃ hotfixํ•  ์š”์†Œ๋“ค์„ ๊ณ ์น˜๊ณ , ์ปค๋ฐ‹ํ•œ๋‹ค.

์—ฌ๊ธฐ๋Š” ๋ถ€๊ฐ€์„ค๋ช…ํ• ๊ฒŒ ์—†๋‹ค. ๊ณ ์น˜๊ณ  hotfix/๋ฒ„์ „๋ช…๋ธŒ๋žœ์น˜์— ์ปค๋ฐ‹!


3๏ธโƒฃ git flow hotfix finish ๋ฒ„์ „๋ช… ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•œ๋‹ค

์œ„์˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด, hotfix/๋ฒ„์ „๋ช…์˜ ์ปค๋ฐ‹ ๋‚ด์šฉ์ด ๋กœ์ปฌ์˜ main๊ณผ develop์— ๊ฐ๊ฐ merge๋œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  hotfix/๋ฒ„์ „๋ช… ๋ธŒ๋žœ์น˜๋Š” ๋กœ์ปฌ์—์„œ ์‚ญ์ œ๋˜๋ฉฐ, "๋ฒ„์ „๋ช…"์˜ ์ด๋ฆ„์„ ๊ฐ€์ง„ tag๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ํ˜„์žฌ ๋ธŒ๋žœ์น˜๋Š” develop ๋ธŒ๋žœ์น˜๊ฐ€ ๋œ๋‹ค.


4๏ธโƒฃ ๋กœ์ปฌ์˜ main๊ณผ develop๋ธŒ๋žœ์น˜๋ฅผ ๊ฐ๊ฐ origin์˜ main๊ณผ develop์— push ํ•ด์ค€๋‹ค.

ํ˜„์žฌ hotfixํ•œ ๋‚ด์šฉ๋“ค์€ local์—๋งŒ ๋ฐ˜์˜์ด ๋˜์–ด์žˆ๋‹ค. ๋”ฐ๋ผ์„œ, ์ด๋ฅผ ์›๊ฒฉ repo์—๋„ ๋ฐ˜์˜์„ ๊ฐ๊ฐ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

  • local main -> origin main
  • local develop -> origin develop

๋งŒ์•ฝ upstream repo๋ฅผ ๋”ฐ๋กœ ๋‘์–ด pr๋กœ ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ผ๋ฉด, origin์— pushํ•œ ๋‚ด์šฉ๋“ค์„ PR๋กœ ์˜ฌ๋ ค์ฃผ๋ฉด ๋œ๋‹ค.

  • origin main -> upstream main
  • origin develop -> upstream develop

โš ๏ธ์ฃผ์˜
ํ˜„์žฌ ๋ธŒ๋žœ์น˜๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ž˜ ํ™•์ธํ•˜๊ณ  pushํ•ด์•ผ ํ•œ๋‹ค.
git flow hotfix finish ๋ฒ„์ „๋ช… ๋ช…๋ น์–ด ์‹คํ–‰ ํ›„ ์—๋Š” develop ๋ธŒ๋žœ์น˜๊ฐ€ ํ˜„์žฌ ๋ธŒ๋žœ์น˜๋กœ ์„ค์ •๋œ๋‹ค.


5๏ธโƒฃ git push remote๋ช… --tags ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์›๊ฒฉ repo์— ํƒœ๊ทธ๋ฅผ ๋ฐ˜์˜ํ•œ๋‹ค.

origin์— ๋ฐ˜์˜ํ•˜๋ ค๋ฉด git push origin --tags๋ฅผ,
upstream์— ๋ฐ˜์˜ํ•˜๋ ค๋ฉด git push upstream --tags๋ฅผ ํ•˜๋ฉด ๋œ๋‹ค.

์œ„์˜ ๋ช…๋ น์–ด๋Š”, ์›๊ฒฉ repo์—๋Š” ์—†๊ณ  ๋กœ์ปฌ์—๋งŒ ์žˆ๋Š” ๋ชจ๋“  ํƒœ๊ทธ๋“ค์„ repo์— ๋ฐ˜์˜ํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค.
๋งŒ์•ฝ ํŠน์ •ํ•œ ํ•œ๊ฐœ์˜ ํƒœ๊ทธ๋งŒ ๋ฐ˜์˜ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด,
git push remote๋ช… ํƒœ๊ทธ๋ช… ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

์ฐธ๊ณ 
๋กœ์ปฌ์˜ ํƒœ๊ทธ ํ™•์ธํ•˜๋Š” ๋ช…๋ น์–ด: git tag


๐ŸŽ™๏ธ๋Š๋‚€ ์ 

git flow extension์„ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ์‚ฌ๋žŒ์ด ์ˆ˜๋™์œผ๋กœ ํ•ด์•ผํ•˜๋Š” ๊ฒƒ๋“ค์„ ํšจ๊ณผ์ ์œผ๋กœ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ฒด๊ฐํ–ˆ๋‹ค.
์œ„์˜ ๋‚ด์šฉ๋“ค์„ ํ…Œ์ŠคํŠธํ•ด๋ณด๋ฉด์„œ, git flow๊ฐ€ ์ œ๊ณตํ•˜๋Š” feature ๋“ฑ์˜ ๊ธฐ๋Šฅ๋„ ์‚ฌ์šฉํ•ด๋ณด์•˜๋Š”๋ฐ, ๊ธฐ๋Šฅ๊ฐœ๋ฐœ์ด ๋๋‚œ ๋’ค ๋กœ์ปฌ๊ณผ origin์˜ feature ๋ธŒ๋žœ์น˜๋ฅผ ๋ชจ๋‘ ์ง€์›Œ์ค˜์„œ ๊ต‰์žฅํžˆ ํŽธ๋ฆฌํ–ˆ๋‹ค.

๊ทธ๋™์•ˆ์€ ๊ฒ๋จน์–ด์„œ(...) ์ž˜ ์•ˆ์ผ๋Š”๋ฐ, ์ด์ œ๋ถ€ํ„ฐ๋ผ๋„ ์—ด์‹ฌํžˆ ์จ์•ผ๊ฒ ๋‹ค. ใ… 
์ƒˆ๋กœ์šด ๊ธฐ์ˆ ์€ ์ž…๋ฌธ์ด์•ผ ์–ด๋ ต์ง€ ์‹œ์ž‘ํ•˜๋ฉด ๋ณ„๊ฑฐ ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ,
๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ธฐ์ˆ ์„ ๋„์ž…ํ•จ์œผ๋กœ์จ ๋งŽ์€ ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋‹ค์‹œ ๊ธฐ์–ตํ•˜์ž.

profile
๋งค์ผ ๋ฟŒ๋“ฏํ•˜๊ธฐ๐Ÿฌ๐Ÿญ๐Ÿก๐Ÿซ

0๊ฐœ์˜ ๋Œ“๊ธ€