Skip to content

๐Ÿงฉ Git ์ „๋žต & ์ปจ๋ฒค์…˜ โ€‹

๋ฌผ๋ก ! ์•„๋ž˜์ฒ˜๋Ÿผ ์กฐ๊ธˆ ๋” ์ž์„ธํ•˜๊ฒŒ, ์™œ Squash Merge๋ฅผ ์“ฐ๋Š”์ง€์™€ ์–ด๋–ป๊ฒŒ ์ง„ํ–‰ํ•˜๋Š”์ง€ ๋‹จ๊ณ„๋ณ„๋กœ ์„ค๋ช…ํ•ด ๋ดค์–ด.


๐ŸŸ  Squash Merge ์ „๋žต โ€‹

๋ฉ”์ž‡๋ณผ ํŒ€์€ Squash Merge ๋ฐฉ์‹์„ ์ฑ„ํƒํ•ด ๊น”๋”ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฌ์šด ์ปค๋ฐ‹ ์ด๋ ฅ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

โœ”๏ธ Squash Merge๋ž€? โ€‹

  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปค๋ฐ‹์„ ํ•˜๋‚˜์˜ ์ปค๋ฐ‹์œผ๋กœ ํ•ฉ์ณ์„œ ๋ณ‘ํ•ฉํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.
  • PR ํ•˜๋‚˜๋‹น ์ตœ์ข…์ ์œผ๋กœ ํ•˜๋‚˜์˜ ์ปค๋ฐ‹ ๊ธฐ๋ก๋งŒ ๋‚จ๊ฒŒ ๋˜์–ด, ๊น”๋”ํ•œ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • ๋ถˆํ•„์š”ํ•œ ์ค‘๊ฐ„ ์ปค๋ฐ‹์ด๋‚˜ ์‹คํ—˜์ ์ธ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๊ฐ€ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์–ด์ง€๋Ÿฝํžˆ์ง€ ์•Š๋„๋ก ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

โœ”๏ธ Squash Merge๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  โ€‹

  • ๊ฐ€๋…์„ฑ ํ–ฅ์ƒ ๋ณต์žกํ•œ ์ปค๋ฐ‹ ๋กœ๊ทธ ๋Œ€์‹ , ๊ธฐ๋Šฅ ๋‹จ์œ„๋ณ„๋กœ ๋ช…ํ™•ํ•˜๊ณ  ๊ฐ„๊ฒฐํ•œ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์œ ์ง€๋ณด์ˆ˜ ์šฉ์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํ•œ ๋ˆˆ์— ํŒŒ์•…๋˜์–ด ๋ฒ„๊ทธ ์ˆ˜์ •์ด๋‚˜ ๋กค๋ฐฑ ์ž‘์—…์ด ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค.
  • PR ๋‹จ์œ„ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ๋ณ„ PR์ด ํ•˜๋‚˜์˜ ์ปค๋ฐ‹์œผ๋กœ ์ •๋ฆฌ๋˜๋ฏ€๋กœ, ์–ด๋–ค PR์ด ์–ด๋–ค ๋ณ€๊ฒฝ์„ ํฌํ•จํ•˜๋Š”์ง€ ๋ช…ํ™•ํ•ฉ๋‹ˆ๋‹ค.

โœ”๏ธ Squash Merge ์ง„ํ–‰ ์ ˆ์ฐจ โ€‹

  1. feature ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…์„ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปค๋ฐ‹์„ ์ž์œ ๋กญ๊ฒŒ ๋งŒ๋“ค๊ณ  ์ž‘์—…ํ•ฉ๋‹ˆ๋‹ค.

  2. develop ๋ธŒ๋žœ์น˜์™€ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋™๊ธฐํ™”(rebase) ํ•ฉ๋‹ˆ๋‹ค.

    bash
    git fetch origin
    git rebase origin/develop
    • ์ตœ์‹  develop ๋ธŒ๋žœ์น˜ ๊ธฐ์ค€์œผ๋กœ ๋‚ด ์ž‘์—…์„ ๋‹ค์‹œ ์Œ“์•„ ์˜ฌ๋ ค, ์ปค๋ฐ‹ ์ถฉ๋Œ์„ ์ตœ์†Œํ™”ํ•˜๊ณ  ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  3. PR(Pull Request)์„ ์ƒ์„ฑํ•˜์—ฌ ๋ฆฌ๋ทฐ๋ฅผ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

  4. ๋ฆฌ๋ทฐ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด, Squash Merge๋ฅผ ์„ ํƒํ•˜์—ฌ ๋ณ‘ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

    • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปค๋ฐ‹์ด ํ•˜๋‚˜๋กœ ํ•ฉ์ณ์ ธ develop ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค.
    • PR ์ œ๋ชฉ์ด ์ตœ์ข… ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ, ํ•„์š” ์‹œ ์ƒ์„ธ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ”๏ธ ์ฐธ๊ณ  โ€‹

  • Squash Merge ์‹œ, ๊ฐ ์ปค๋ฐ‹์˜ ์ค‘๊ฐ„ ๋ฉ”์‹œ์ง€๋Š” ์ตœ์ข… ํžˆ์Šคํ† ๋ฆฌ์— ๋‚จ์ง€ ์•Š์œผ๋‹ˆ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€์— ํ•ต์‹ฌ ๋‚ด์šฉ์„ ์ž˜ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
  • ํ˜‘์—… ์‹œ rebase์™€ Squash Merge ๊ทœ์น™์„ ๋ชจ๋‘ ์ง€ํ‚ค๋ฉด, ๊น”๋”ํ•œ ์ปค๋ฐ‹ ๊ด€๋ฆฌ์™€ ์ถฉ๋Œ ์ตœ์†Œํ™”๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ” ๋น„๊ต: ์ผ๋ฐ˜ Merge vs Squash Merge โ€‹

์ผ๋ฐ˜ Merge

๋„์ž… ํ›„ โ€‹

๋„์ž… ํ›„


๐Ÿ”€ ๋ธŒ๋žœ์น˜ ์ „๋žต โ€‹

  1. main : ์˜ค์ง ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ๋ธŒ๋žœ์น˜
  2. develop : ๋ชจ๋“  ๊ธฐ๋Šฅ์ด ๋ณ‘ํ•ฉ๋˜๋Š” ๊ณตํ†ต ๋ธŒ๋žœ์น˜ (๊ธฐ๋ณธ ๋ธŒ๋žœ์น˜)
  3. feature/style ๋“ฑ : ์ž‘์—… ๋‹จ์œ„๋ณ„ ๊ธฐ๋Šฅ ๋ธŒ๋žœ์น˜

โ“ ์™œ 3๋ธŒ๋žœ์น˜ ์ „๋žต์ธ๊ฐ€? โ€‹


โ˜๏ธ ๋ฐฐํฌ ํ”Œ๋กœ์šฐ (with Cloudflare) โ€‹

  • main ๋ธŒ๋žœ์น˜ โ†’ Cloudflare Pages ์ž๋™ ๋ฐฐํฌ
  • GitHub Actions๋กœ ๋ณ€๊ฒฝ ๊ฐ์ง€ ์‹œ, ๊ฐœ์ธ ๋ ˆํฌ๋กœ ์ž๋™ ํ‘ธ์‹œ๋จ

โœ… Issue ํ…œํ”Œ๋ฆฟ โ€‹

  • ์ œ๋ชฉ: feat: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„

ํ…œํ”Œ๋ฆฟ ์ œ๋ชฉ์˜ [๊ธฐ๋Šฅ]์€ ์ปค๋ฐ‹ ์ปจ๋ฒค์…˜ ํ‚ค์›Œ๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.


โœ… PR ํ…œํ”Œ๋ฆฟ โ€‹

  • ์ œ๋ชฉ: feat: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„
md
## #๏ธโƒฃ Related Issue
Closes #

## โ˜€๏ธ New Insight
<!-- ์ƒˆ๋กญ๊ฒŒ ์•Œ๊ฒŒ ๋œ ๋ถ€๋ถ„์„ ์ ์–ด์ฃผ์„ธ์š” -->

## ๐Ÿ’Ž PR Point
<!-- ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…, ๊ณตํ†ต ์ปดํฌ๋„ŒํŠธ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•, ๊ณ ๋ฏผํ•œ ๋กœ์ง ๋“ฑ -->

## ๐Ÿ“ธ Screenshot
<!-- UI ์ž‘์—… ์‹œ ์ฒจ๋ถ€ ํ•„์ˆ˜ -->

PR์—๋Š” ๋ฆฌ๋ทฐ์–ด๊ฐ€ ๋งฅ๋ฝ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ์ตœ๋Œ€ํ•œ ์ž์„ธํžˆ ์ ์Šต๋‹ˆ๋‹ค. ํŒ€์›์—๊ฒŒ ๋„์›€์ด ๋œ ๋ฆฌ๋ทฐ์—๋Š” ๊ตฟ ๋ฆฌ๋ทฐ ๋ผ๋ฒจ์„ ๋‹ฌ์•„์ฃผ์„ธ์š”! ๐Ÿ’ก


๐Ÿงท ์ปค๋ฐ‹ ์ปจ๋ฒค์…˜ โ€‹

Type์„ค๋ช…
init์ดˆ๊ธฐ ์„ธํŒ…
setting๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ • (ํŒจํ‚ค์ง€, config ๋“ฑ)
feat๊ธฐ๋Šฅ ๊ฐœ๋ฐœ
fix๋ฒ„๊ทธ ์ˆ˜์ •
style์Šคํƒ€์ผ / CSS ๋ณ€๊ฒฝ
apiAPI ํ†ต์‹  ๊ด€๋ จ ์ฝ”๋“œ
refactor๋ฆฌํŒฉํ† ๋ง
choreํŒจํ‚ค์ง€ ์„ค์น˜ / ๋นŒ๋“œ ์„ค์ • (ํ”„๋กœ๋•์…˜ ์ฝ”๋“œ ์ œ์™ธ)
deploy๋ฐฐํฌ ๊ด€๋ จ ์„ค์ •
comment์ฃผ์„ ์ถ”๊ฐ€ ๋˜๋Š” ์ˆ˜์ •
testํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€
renameํŒŒ์ผ ๋˜๋Š” ํด๋”๋ช… ๋ณ€๊ฒฝ
removeํŒŒ์ผ ์‚ญ์ œ
docs๋ฌธ์„œ ์ˆ˜์ •
!HOTFIX๊ธด๊ธ‰ ์ˆ˜์ •
!BREAKING CHANGE๋Œ€๊ทœ๋ชจ ๊ตฌ์กฐ ๋ณ€๊ฒฝ ์‹œ ์‚ฌ์šฉ

๐ŸŒฟ ๋ธŒ๋žœ์น˜ ๋„ค์ด๋ฐ ๊ทœ์น™ โ€‹

  • PR ๋จธ์ง€ ํ›„ ๋ธŒ๋žœ์น˜๋Š” ์‚ญ์ œ
  • ๋จธ์ง€ ๋ฐฉ์‹: squash merge

๐Ÿ™Œ ๋ชจ๋‘๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ณ , ๊น”๋”ํ•œ Git ์ด๋ ฅ์„ ๋‚จ๊ธฐ๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค.