Skip to content

Git Branching Strategy

Hogu59 edited this page Jul 19, 2024 · 2 revisions

Github Repository

https://github.com/woowacourse-teams/2024-pengcook

์ปค๋ฐ‹ ์ปจ๋ฒค์…˜

  • ์ปค๋ฐ‹ ํƒ€์ž…์€ ๊นƒ๋ชจ์ง€๋ฅผ ์‚ฌ์šฉํ•ด์š”
  • ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€, PR title, PR description์€ ์˜์–ด๋กœ ํ†ต์ผํ•ด์š”
  • PR comment๋Š” ํ•œ๊ธ€๋กœ ์ž‘์„ฑํ•ด์š”
  • PR์ฃผ๊ธฐ๋Š” ๊ธฐ๋Šฅ ๋‹จ์œ„๋กœ ํ•ด์š” (๋ถ„์•ผ๋ณ„๋กœ ๊ถŒํ•œ ์œ„์ž„)
  • ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ title์€ 50์ž ์ดํ•˜๋กœ ์ž‘์„ฑํ•ด์š”
  • ์ปค๋ฐ‹ ์Šค์ฝ”ํ”„๋Š” ์ƒ๋žตํ•ด์š”

๋ธŒ๋žœ์นญ ์ „๋žต

๋ธŒ๋žœ์น˜๋ช… ์–‘์‹

*์€ ํ•ญ์ƒ ์œ ์ง€๋˜๋Š” ๋ธŒ๋žœ์น˜์ด๋ฉฐ, ํ•ด๋‹น ๋ธŒ๋žœ์น˜์—์„œ๋Š” ์ปค๋ฐ‹์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

  • **main ***
  • **an/prod ***
  • **be/prod ***
  • an/release
  • be/release
  • **an/dev ***
  • **be/dev ***
  • an/feat/[issue-number]
  • be/feat/[issue-number]

๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ๋ฐ ํ™œ์šฉ ๊ณผ์ •

  1. ๊ฐ์ž Task์— ๋”ฐ๋ฅธ Issue๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. โ†’ ์ด์Šˆ ๋ฒˆํ˜ธ๊ฐ€ ์ˆซ์ž๋กœ ์ƒ์„ฑ๋จ

  2. dev ๋ธŒ๋žœ์น˜๋กœ๋ถ€ํ„ฐ feat ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•œ๋‹ค.

    ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ์‹œ, ์ƒ์„ฑ๋œ ์ด์Šˆ ๋ฒˆํ˜ธ๋ฅผ ํ† ๋Œ€๋กœ ๋ธŒ๋žœ์น˜ ์ด๋ฆ„์„ ์„ค์ •ํ•œ๋‹ค.

    [position]/feat/[issue-number]

    git checkout an/dev git fetch origin an/dev git rebase origin/an/dev git checkout -b an/feat/126

  3. ๊ฐ์ž ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์„ ๋งˆ์นœ ํ›„ PR์„ ์•„๋ž˜ ๋ธŒ๋žœ์น˜ ๋ฐฉํ–ฅ๋Œ€๋กœ ์ž‘์„ฑํ•œ๋‹ค. an/dev โ† an/feat/123

    PR ์ž‘์„ฑ ์ด์ „ ๋กœ์ปฌ์—์„œ dev ๋ธŒ๋žœ์น˜๋ฅผ pullํ•œ๋‹ค.

    <aside> ๐Ÿ’ก ์ด๋•Œ pull์€ rebase๊ฐ€ ์•„๋‹Œ merge ํ˜•ํƒœ๋กœ ํ•œ๋‹ค (git config pull.rebase false)

    </aside>

  4. ํ•ด๋‹น PR์— ๋Œ€ํ•ด ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ์™„๋ฃŒํ•œ ๋’ค PR์„ reabseํ•œ๋‹ค. (Merge ๋‚˜ Squash ๋Š” ์ ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.)

    ์ด ๊ณผ์ •์—์„œ, rebase๋ฅผ ์ ์šฉํ•œ๋‹ค.

    Rebase๋˜๋ฉด, ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋Š” ์‚ญ์ œํ•œ๋‹ค.

  5. ๋ชฉํ‘œ ๋‹จ์œ„๊นŒ์ง€์˜ ๊ฐœ๋ฐœ์ด ์™„๋ฃŒ๋˜๋ฉด ๋ฐฐํฌ ์ค€๋น„๋ฅผ ์œ„ํ•ด release ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. git checkout -b an/release

  6. ๋ฆด๋ฆฌ์Šค์—์„œ ์ „์ฒด ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๋™์•ˆ ๋ฌธ์ œ ๋ฐœ์ƒ ์‹œ, Hotfix๋กœ ์ˆ˜์ • ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•œ ํ›„ dev ๋ธŒ๋žœ์น˜๋กœ ๋ณ‘ํ•ฉํ•œ๋‹ค. Commit message ๐Ÿš‘ :ambulance: resolve some problem

  7. release ๋ธŒ๋žœ์น˜์—์„œ ๋ชจ๋“  ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜์—ฌ ๋ฐฐํฌ ์ค€๋น„๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด PR์„ ์•„๋ž˜ ๋ธŒ๋žœ์น˜ ๋ฐฉํ–ฅ๋Œ€๋กœ ์ž‘์„ฑํ•œ๋‹ค. an/prod โ† an/release

    1. PR ๋ณ‘ํ•ฉ ์‹œ Squash ๋ฅผ ํ†ตํ•ด ์ปค๋ฐ‹ ์ด๋ ฅ์„ ํ•˜๋‚˜๋กœ ํ†ตํ•ฉํ•œ๋‹ค.

    2. ๋งŒ์•ฝ prod ๋ธŒ๋žœ์น˜์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด 6๋ฒˆ ๊ณผ์ •์œผ๋กœ ๋Œ์•„๊ฐ„๋‹ค.

    3. ์ˆ˜์ •๋œ release ๋ธŒ๋žœ์น˜ ์ƒ์—์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด ๋‹ค์‹œ dev ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉํ•œ๋‹ค.

      an/dev โ† an/release

  8. prod ๋ธŒ๋žœ์น˜์—์„œ ๋ชจ๋“  ์ค€๋น„๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด, PR์„ ์•„๋ž˜ ๋ธŒ๋žœ์น˜ ๋ฐฉํ–ฅ๋Œ€๋กœ ์ž‘์„ฑํ•œ๋‹ค.

    main โ† an/prod

    1. main ๋ธŒ๋žœ์น˜์— PR์„ ์ง„ํ–‰ํ•  ๋•Œ๋Š”, ์•„๋ž˜์™€ ๊ฐ™์€ PR๋ช… ์ปจ๋ฒค์…˜์„ ๋”ฐ๋ฅธ๋‹ค.

      release v1.0.0

    b. PR ๋ณ‘ํ•ฉ ์‹œ rebase ์œผ๋กœ ๋จธ์ง€ํ•œ๋‹ค.

  9. ์ดํ›„ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ์‹œ, 1๋ฒˆ ๊ณผ์ •์œผ๋กœ ๋Œ์•„๊ฐ„๋‹ค.

๋ธŒ๋žœ์น˜๋ช… ์ปจ๋ฒค์…˜

  • feature : ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€
  • fix : ๋ฒ„๊ทธ ์ˆ˜์ •
  • refactor : ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง
  • build : ๋นŒ๋“œ ๊ด€๋ จ ํŒŒ์ผ ์ˆ˜์ •
  • ci : CI ์„ค์ • ํŒŒ์ผ ์ˆ˜์ •
  • cd : CD ์„ค์ • ํŒŒ์ผ ์ˆ˜์ •
  • perf : ์„ฑ๋Šฅ ๊ฐœ์„ 
  • chore : ๊ทธ ์™ธ ์ž์ž˜ํ•œ ์ˆ˜์ •

๊นƒ๋ชจ์ง€

https://gitmoji.dev/

์•„์ด์ฝ˜ ์ฝ”๋“œ ์„ค๋ช… ์›๋ฌธ
โœจ โœจ ์ƒˆ ๊ธฐ๋Šฅ Introduce new features.
โ™ป๏ธ โ™ป๏ธ ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง Refactor code.
๐Ÿ”ฅ ๐Ÿ”ฅ ์ฝ”๋“œ/ํŒŒ์ผ ์‚ญ์ œ Remove code or files.
๐Ÿ› ๐Ÿ› ๋ฒ„๊ทธ ์ˆ˜์ • Fix a bug.
โœ… โœ… ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€/์ˆ˜์ • Add or update tests.
๐Ÿ“ ๐Ÿ“ ๋ฌธ์„œ ์ถ”๊ฐ€/์ˆ˜์ • Add or update documentation.
๐Ÿ’„ ๐Ÿ’„ UI/์Šคํƒ€์ผ ํŒŒ์ผ ์ถ”๊ฐ€/์ˆ˜์ • Add or update the UI and style files.
โž• โž• ์˜์กด์„ฑ ์ถ”๊ฐ€ Add a dependency.
โž– โž– ์˜์กด์„ฑ ์ œ๊ฑฐ Remove a dependency.
๐Ÿ”ง ๐Ÿ”ง ๊ตฌ์„ฑ ํŒŒ์ผ ์ถ”๊ฐ€/์‚ญ์ œ Add or update configuration files.
โช โช ๋ณ€๊ฒฝ ๋‚ด์šฉ ๋˜๋Œ๋ฆฌ๊ธฐ Revert changes.
๐Ÿšš ๐Ÿšš ๋ฆฌ์†Œ์Šค ์ด๋™, ์ด๋ฆ„ ๋ณ€๊ฒฝ Move or rename resources (e.g.: files paths routes).
๐Ÿ’ก ๐Ÿ’ก ์ฃผ์„ ์ถ”๊ฐ€/์ˆ˜์ • Add or update comments in source code.
๐ŸŽ‰ ๐ŸŽ‰ ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ Begin a project.
๐Ÿ’ฉ ๐Ÿ’ฉ ๋˜ฅ์‹ผ ์ฝ”๋“œ Write bad code that needs to be improved.
๐Ÿป ๐Ÿป ์ˆ  ์ทจํ•ด์„œ ์“ด ์ฝ”๋“œ Write code drunkenly.