ETC/Git

[ Git ] ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๋•Œ git ์„ค๊ณ„ - YEOL

tenchoi 2022. 8. 22. 17:38

๐Ÿ“€ ํ™˜๊ฒฝ 

 

๐Ÿ”– ๊ฐœ์š”

git์„ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ€๋…์„ฑ, ํšจ์œจ์„ฑ ๋“ฑ์„ ๊ณ ๋ คํ•˜๋ฉฐ ์„ค๊ณ„ํ•˜๊ธฐ!

๐Ÿ“’ ๋ชฉ์ฐจ

  • git ์ดˆ๊ธฐ ์„ธํŒ…
  • git flow ๋ธŒ๋žœ์น˜
  • issue, bug, pr

 

- git ์ดˆ๊ธฐ ์„ธํŒ…

  1. git ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ
  2. ํ•ด๋‹น git issue template bug๋ž‘ feature ๋งŒ๋“ค๊ธฐ (์ด๋ฏธ์ง€ ์ฐธ์กฐ)
  3. git tool ํ†ตํ•ด clone ๋ฐ›๊ธฐ
    ๊ณ„์ •์ด 2๊ฐœ์ผ ๊ฒฝ์šฐ ์„ค์ •์—์„œ ์ถ”๊ฐ€(์ €๋Š” git fork ํˆด ์‚ฌ์šฉ)
  4. ๋ธŒ๋žœ ์น˜๋ช…์ด prod์ธ ๋ธŒ๋žœ์น˜ ์ƒ์„ฑํ•˜๊ณ  ๊ทธ ๋ธŒ๋žœ์น˜ ์‚ฌ์šฉ
    ๋‚˜์ค‘์— dev, feature ๋ธŒ๋žœ์น˜๋ฅผ ์ถ”๊ฐ€ , staging๋Š” optional 

 

- git flow ๋ธŒ๋žœ์น˜

์•„๋ž˜๊ฐ€ ์‚ฌ์šฉํ•  ๋ธŒ๋žœ์น˜๋“ค์ž…๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋Š˜๋ฆฌ๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

  1. prod: ์‹ค์ œ ๋ฐฐํฌ๋˜์–ด์žˆ๋Š” ์„œ๋น„์Šค ๋ธŒ๋žœ์น˜
  2. dev: feature์—์„œ pr ๋ฐ›์„ ๋ฐฐํฌ ์ด์ „ ๋‹จ๊ณ„์˜ ํ…Œ์ŠคํŠธ ๋ธŒ๋žœ์น˜
  3. feature-issue#1: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ๋•Œ git์˜ issue number๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ƒ์„ฑํ•  ๋ธŒ๋žœ์น˜
  4. hotfix-issue#1: prod์—์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์„ ๊ฒฝ์šฐ ์ƒ์„ฑํ•  ๋ธŒ๋žœ์น˜
  5. staging: prod์™€ ๊ฐ€์žฅ ํก์‚ฌํ•œ ํ™˜๊ฒฝ์—์„œ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ธŒ๋žœ์น˜
    (์„œ๋“œํŒŒํ‹ฐ์—์„œ prod์™€ dev์˜ ๋ฆฌํ„ด ๊ฐ’์ด ๋‹ค๋ฅด๊ฑฐ๋‚˜ dev์—์„œ๋งŒ ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•  ๊ฒฝ์šฐ ์˜๋ฏธ๊ฐ€ ํ‡ด์ƒ‰๋  ์ˆ˜ ์žˆ๋Š” ๋ธŒ๋žœ์น˜)

feature -> dev, hotfix -> prod ์ˆœ์„œ๋กœ prod๊ฐ€ ๊ฐ€์žฅ ์ƒ์œ„์˜ ๋ธŒ๋žœ์น˜์ž…๋‹ˆ๋‹ค.
ํ•˜์œ„์—์„œ ์ƒ์œ„๋กœ pr์„ ๋‚ ๋ฆฌ๊ณ  ํ…Œ์ŠคํŠธํ•˜๊ณ  ๊ทธ์œ„๋กœ pr์„ ๋‚ ๋ฆฌ๋Š” ๊ตฌ์กฐ์ด๋ฉฐ hotfix๋‚˜ dev์—์„œ ์ผ๋ถ€ ์ˆ˜์ •ํ•  ๊ฒฝ์šฐ
rebase๋ฅผ ํ†ตํ•ด ๊ธฐ์กด ๋ธŒ๋žœ์น˜์˜ base๋ฅผ ๋ณ€๊ฒฝ๋œ ๊ฐ’์œผ๋กœ ๋”ฐ๋ผ๊ฐ‘๋‹ˆ๋‹ค.

 

- issue, bug, pr

issue๋‚˜ bug, pr ๋“ฑ์˜ ๋ฌธ์„œ์  ์ •๋ฆฌ๋Š” ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์˜ git ํ™ˆํŽ˜์ด์ง€์—์„œ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์ด์Šˆ์˜ ๊ฒฝ์šฐ์—๋Š” ์ƒ์„ฑํ•  ๋•Œ ์ƒ๊ธฐ๋Š” number๋ฅผ ๋Š˜ ํ™œ์šฉํ•ด์ค๋‹ˆ๋‹ค.

 

๐ŸŒŸ ๊ทผ๊ฑฐ ์žˆ๋Š” ์กฐ์–ธ์€ ์–ธ์ œ๋‚˜ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ์„ฑ์‹คํ•œ ์ฝ”๋”ฉ ํ•˜์„ธ์š”.