let's get IT with DAVINA ๐Ÿ’ป

Git Flow ๋ณธ๋ฌธ

DEV_IN/Git&Github

Git Flow

๋‹ค๋นˆ์น˜์ฝ”๋“œ๐Ÿ’Ž 2023. 2. 8. 21:20

1. main (๋ฐฐํฌ์šฉ)

ํ˜„์žฌ ์ฝ”๋“œ์ž„ → ์–œ ๊ฑด๋“ค์ง€ ๋ง๊ณ  ์ผ๋‹จ ์•ˆ์ „ → 4๋ฒˆ ๊ณผ์ •๊นŒ์ง€ ๋‹ค ์™„์„ฑ๋˜๋ฉด mergeํ•ด์„œ ๋ฐฐํฌ!

2. develop (๊ฐœ๋ฐœ์šฉ)

3๋ฒˆ feature์—์„œ ์ž˜๋˜๋ฉด develop ๋ธŒ๋žœ์น˜์— mergeํ•˜๊ณ 

3. feature (develop์— ๊ธฐ๋Šฅ์ถ”๊ฐ€์šฉ)

๋ถ„๋ฅ˜๋ฅผ ์„ธ์„ธํ•˜๊ฒŒ ๋‚˜๋ˆ„๊ธฐ๋ฅผ ์›ํ•˜๋Š” ํšŒ์‚ฌ์—์„œ๋Š” refactor, fix, docs, chore์™€ ๊ฐ™์ด ์„ธ์„ธํ•˜๊ฒŒ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋‚˜ ๋ธŒ๋žœ์น˜ ๋ช…์— prefix๋ฅผ ๋‹ฌ๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

hash (๋ธŒ๋žœ์น˜ ๋ช…) ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€
2f85eea (feat/create-todo) feat: Todo ์ถ”๊ฐ€ ๊ธฐ๋Šฅ
2ad0805 (fix/var-name) fix: ๋ณ€์ˆ˜ ๋„ค์ด๋ฐ ์ปจ๋ฒค์…˜์— ๋งž๊ฒŒ ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝ (ismale => isMale)
e7ce3ad (refactor) refactor: ๋ถˆํ•„์š”ํ•œ for ๋ฃจํ”„ ์‚ญ์ œ

⇒ ๋” ๋งŽ์€ ์‚ฌ๋ก€ Conventional Commits

์—ฌ๊ธฐ์„œ ์‹ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœํ•ด๋ด!

4. release (์ถœ์‹œ ์ „ ํ…Œ์ŠคํŠธ)

2๋ฒˆ๊ณผ์ •๊นŒ์ง€ ๋ง˜์— ๋“ค์–ด? ์ด ๊ณผ์ •์—์„œ ํ…Œ์ŠคํŠธ ํ•ด๋ด!

5. hotfix (main ๋ธŒ๋žœ์น˜ ๋ฒ„๊ทธํ•ด๊ฒฐ์šฉ)

main์—์„œ ๋ฐฐํฌ๋‚˜๊ฐ”๋Š”๋ฐ ์œ ์ €๋“ค์ด ๋ฒ„๊ทธ ๋ฐœ๊ฒฌ → ๊ธ‰ํžˆ ์ˆ˜์ • ์›ํ•˜๋ฉด hotfix์—์„œ ์ˆ˜์ •ํ•˜๊ณ  ๋‹ค์‹œ main์— merge


Trunk-based ์ „๋žต (github flow๋„ ๋น„์Šท)

์žก๋‹คํ•œ ๋ธŒ๋žœ์น˜ ์—†์• ~

  1. ๊ธฐ๋Šฅ์ถ”๊ฐ€, ๋ฒ„๊ทธํ”ฝ์Šค๊ฐ€ ํ•„์š”ํ•˜๋ฉด main ๋ธŒ๋žœ์น˜์—์„œ ์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์„œ ์ฝ”๋“œ์งญ๋‹ˆ๋‹ค.
    • ๋ธŒ๋žœ์น˜๋งˆ๋‹ค ์ž‘๋ช… ์ž˜ํ•˜๋Š”๊ฒŒ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
  2. ๊ธฐ๋Šฅ์ด ์™„์„ฑ๋˜์—ˆ์œผ๋ฉด main ๋ธŒ๋žœ์น˜์— ํ•ฉ์นฉ๋‹ˆ๋‹ค.
    • ์ด์ œ ๋ธŒ๋žœ์น˜ ์“ธ๋ฐ์—†์œผ๋‹ˆ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
  3. main ๋ธŒ๋žœ์น˜์— ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ํ•„์š”ํ•  ๋•Œ ๋งˆ๋‹ค ์œ ์ €๋“ค์—๊ฒŒ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.

'DEV_IN > Git&Github' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Push failed Ssh: connect to host '...' port 22: Connection timed  (7) 2023.03.03
Git VS Github  (0) 2023.02.08
Github  (0) 2023.02.08
Git [๋‚ด ์‹ค์ˆ˜ ๋ณต๊ตฌํ•˜๊ธฐ] ๊ณผ๊ฑฐ๋กœ ์“ฉ ๐Ÿ’จ  (4) 2023.02.08
Git [merge]  (3) 2023.02.08
Comments