Conventions - EnvEduPNU/EnvEdu_Server GitHub Wiki

Branches

  • main : ์‹ค์ œ๋กœ ์ž‘๋™ํ•˜๊ณ  ์žˆ๋Š” ๋ฒ„์ „, CI/CD ๋Œ€์ƒ ๋ธŒ๋žœ์น˜
  • develop : ๊ฐœ๋ฐœ ๋‹จ๊ณ„์—์„œ ๊ฐ feature ๋ธŒ๋žœ์น˜๊ฐ€ ํ•ฉ์ณ์ง€๋Š” ๋ธŒ๋žœ์น˜, ๊ฐ feature์—์„œ ๋‚ ๋ฆฐ PR์€ ์ตœ์†Œ ํ•œ ๋ช…์˜ ๋ฆฌ๋ทฐ ํ›„ merge ๋  ์ˆ˜ ์žˆ์Œ
  • feature : ๊ฐ ๊ธฐ๋Šฅ ๋ณ„๋กœ ์ƒ์„ฑํ•˜๋Š” ๋ธŒ๋žœ์น˜, develop์— merge ํ›„ ์‚ญ์ œ, ex. feature/#{issue number}/{feature name}/{collaborator name}

Flow

  • ๊ฐ collaborator๋Š” fork๋กœ ๋ถ„๊ธฐํ•ด ์ž‘์—…
  • ๋งค์ฃผ ๊ธˆ์š”์ผ develop ๋ธŒ๋žœ์น˜๋ฅผ main ๋ธŒ๋žœ์น˜๋กœ merge, 1์ฃผ์ผ ๋™์•ˆ ์ž์‹ ์ด ์ง„ํ–‰ํ•  ๊ฐœ๋ฐœ ์ผ์ • backlog ์ž‘์„ฑ ๋ฐ ๊ฐ backlog ์ด์Šˆ์— ํ•ด๋‹นํ•˜๋Š” ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ
  • ๋งค์ผ ์˜คํ›„ 9์‹œ์— collaborator๋Š” feature ๋ธŒ๋žœ์น˜์—์„œ develop ๋ธŒ๋žœ์น˜๋กœ ์ „์†กํ•œ PR์„ ๋ฆฌ๋ทฐํ•˜๊ณ  ์Šน์ธํ•˜๋Š” scrum ์ง„ํ–‰
  • develop ๋ธŒ๋žœ์น˜๊ฐ€ ์—…๋ฐ์ดํŠธ ๋˜๋ฉด fetch-rebase ์ด์šฉํ•ด local ์ €์žฅ์†Œ ์—…๋ฐ์ดํŠธ
  • ์ฐธ๊ณ  : ์ฐธ๊ณ 

Commit

  • ex. #{issue number}-{type}/{commit message}
  • type
    • feat : ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•œ ๊ฒฝ์šฐ
    • style : ๋ณ€์ˆ˜ ์ด๋ฆ„ ๋ณ€๊ฒฝ, ์ค„ ๊ฐ„๊ฒฉ ๋ณ€๊ฒฝ ๋“ฑ์˜ ์ฝ”๋“œ์˜ ์Šคํƒ€์ผ์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒฝ์šฐ
    • fix : ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•œ ๊ฒฝ์šฐ
    • refactor : ๋ฆฌํŒฉํ† ๋ง์„ ์ง„ํ–‰ํ•œ ๊ฒฝ์šฐ
    • test : ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ ๋ฐ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•œ ๊ฒฝ์šฐ
    • rm : ํŒŒ์ผ์„ ์ œ๊ฑฐํ•œ ๊ฒฝ์šฐ
    • mv : ํŒŒ์ผ์˜ ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•œ ๊ฒฝ์šฐ
    • env : ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ ์„ค์ •๊ณผ ๊ด€๋ จ๋œ ๊ฒฝ์šฐ
    • doc : ๋ฌธ์„œ์™€ ๊ด€๋ จ๋œ ๋ณ€๊ฒฝ
    • add : ์ฝ”๋“œ ๋˜๋Š” ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ
    • rn : ํด๋ž˜์Šค, ํŒŒ์ผ ๋“ฑ์˜ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒฝ์šฐ

PR

  • feature -> develop
    • title: feature ๋ธŒ๋žœ์น˜ ์ด๋ฆ„
    • content:
      • ๊ตฌํ˜„ ๋ฐ ์ˆ˜์ •ํ•œ ๊ธฐ๋Šฅ ์š”์•ฝ
      • ์ž‘์—…ํ•˜๋ฉฐ ๋ฐœ์ƒํ–ˆ๋˜ ๋ฌธ์ œ
      • ๋ฌธ์ œ์˜ ์›์ธ๊ณผ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
  • develop -> main
    • title: ํ˜„์žฌ ๋‚ ์งœ(yyyy/mm/dd)
    • content: ์ถ”๊ฐ€ ๋ฐ ์ˆ˜์ •ํ•œ ๊ธฐ๋Šฅ - {๋‹ด๋‹น์ž username}
  • ํŽธ์˜์ƒ local -> remote -> upstream ๊ณผ์ •์„ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  local์—์„œ ๋ฐ”๋กœ git push upstream ${branch_name} ์œผ๋กœ ๋ฐ”๋กœ upstream์œผ๋กœ push
    • ํ•ด๋‹น ๋ช…๋ น์–ด ์ˆ˜ํ–‰ ์‹œ upstream์— ๋™์ผํ•œ ์ด๋ฆ„์˜ ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ๋จ
    • ํ•ด๋‹น ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด upstream github์— ํ‘œ์‹œ๋˜๋Š” ๋ถˆํ•„์š”ํ•œ commit์„ ์—†์•จ ์ˆ˜ ์žˆ์Œ

Guide

  1. EnvEduPNU์—์„œ ๋ณธ์ธ github์œผ๋กœ fork
  2. ๋ณธ์ธ PC์—์„œ git clone https://github.com/${๋ณธ์ธ ๋ ˆํฌ์ง€ํ† ๋ฆฌ}/${ํ”„๋กœ์ ํŠธ}.git ex. git clone https://github.com/201724554/EnvEdu_Server.git
  3. ๋ณธ์ธ PC์—์„œ git add remote -t develop upstream https://github.com/EnvEduPNU/${ํ”„๋กœ์ ํŠธ}.git
  4. ์ž‘์—… ์‹œ, EnvEduPNU์˜ ํ”„๋กœ์ ํŠธ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ์ด์Šˆ ์ƒ์„ฑ
  5. ๋กœ์ปฌ์—์„œ main ๋ธŒ๋žœ์น˜์— ์œ„์น˜ํ•œ ์ƒํƒœ๋กœ git checkout -b feature/${์ƒ์„ฑํ•œ ์ด์Šˆ ๋ฒˆํ˜ธ}/${์ž‘์—…์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ๋ฌ˜์‚ฌ(CamelCase)/${๋ณธ์ธ ๊นƒํ—ˆ๋ธŒ ์•„์ด๋””} ์‹คํ–‰ํ•ด ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ
  6. ์ž‘์—…, ์ปค๋ฐ‹ ๋‹จ์œ„ ํฌ์ง€ ์•Š๊ฒŒ
  7. git push upstream ${์ƒ์„ฑํ•œ ๋ธŒ๋žœ์น˜ ์ด๋ฆ„}
  8. PR ๋‚ ๋ฆฌ๊ธฐ(#PR ์ฐธ๊ณ )
  9. ๋ฆฌ๋ทฐ ํ›„ develop ๋ธŒ๋žœ์น˜๋กœ merge
  10. merge ์™„๋ฃŒ ๋˜๋ฉด ๋กœ์ปฌ์—์„œ git switch main ์‹คํ–‰ํ•ด main ๋ธŒ๋žœ์น˜๋กœ ๋ณต๊ท€
  11. git fetch upstream develop ์‹คํ–‰ํ•ด develop ๋ธŒ๋žœ์น˜์— merge๋œ ๋‚ด์šฉ ๊ฐ€์ ธ์˜ค๊ธฐ
  12. git rebase upstream/develop์œผ๋กœ ๋กœ์ปฌ์˜ develop ๋ธŒ๋žœ์น˜์™€ upstream develop ๋™๊ธฐํ™”
  13. git branch -D ${์ƒ์„ฑํ•œ ๋ธŒ๋žœ์น˜ ์ด๋ฆ„}์œผ๋กœ ์ž‘์—… ๋ธŒ๋žœ์น˜ ์ œ๊ฑฐ
  14. 4๋กœ ์ด๋™ํ•ด ๋ฐ˜๋ณต