From f15f6e8070e3560719ceab6ab3f647eef78c1d26 Mon Sep 17 00:00:00 2001 From: Soyeon Choe Date: Mon, 22 Jul 2024 12:38:09 +0900 Subject: [PATCH] docs: Git-Flow vs GitHub-Flow --- July/article/Git-Flow-vs-GitHub-Flow.md | 104 ++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 July/article/Git-Flow-vs-GitHub-Flow.md diff --git a/July/article/Git-Flow-vs-GitHub-Flow.md b/July/article/Git-Flow-vs-GitHub-Flow.md new file mode 100644 index 0000000..3dd7822 --- /dev/null +++ b/July/article/Git-Flow-vs-GitHub-Flow.md @@ -0,0 +1,104 @@ +## πŸ”— [Git-Flow vs GitHub-Flow](https://quangnguyennd.medium.com/git-flow-vs-github-flow-620c922b2cbd) + +### πŸ—“οΈ λ²ˆμ—­ λ‚ μ§œ: 2024.07.22 + +### 🧚 λ²ˆμ—­ν•œ 크루: μ†Œν•˜(μ΅œμ†Œμ—°) + +--- + + + +## Git-Flow + +Git-FlowλŠ” μ„œλ‘œ λ‹€λ₯Έ κΈ°λŠ₯ κ°„μ˜ 병렬 개발 μš”κ΅¬λ₯Ό ν•΄κ²°ν•˜λŠ” 방법을 μ œκ³΅ν•©λ‹ˆλ‹€. κΈ°λŠ₯을 κ°œλ°œν•˜κΈ° μ‹œμž‘ν•˜λ©΄ master λΈŒλžœμΉ˜μ—μ„œ feature 브랜치λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€. 그런 λ‹€μŒ κΈ°λŠ₯에 λŒ€ν•œ λͺ¨λ“  개발 μž‘μ—…μ€ 이 feature λΈŒλžœμΉ˜μ—μ„œ μˆ˜ν–‰λ©λ‹ˆλ‹€. κΈ°λŠ₯ μž‘μ—…μ„ μ™„λ£Œν•œ ν›„μ—λŠ” 릴리슀λ₯Ό μœ„ν•œ μ£Ό μ½”λ“œ 경둜둜 feature 브랜치λ₯Ό λ‹€μ‹œ λ³‘ν•©ν•©λ‹ˆλ‹€. + +Git-FlowλŠ” λ‹€μŒκ³Ό 같은 브랜치λ₯Ό 가지고 μžˆμŠ΅λ‹ˆλ‹€. + +- Feature 브랜치: κ°œλ°œμžκ°€ κΈ°λŠ₯을 κ°œλ°œν•˜λŠ” 데 μ‚¬μš©ν•˜λŠ” λΈŒλžœμΉ˜μž…λ‹ˆλ‹€. +- Develop 브랜치: 개발된 κΈ°λŠ₯을 μˆ˜μ§‘ν•˜λŠ” λΈŒλžœμΉ˜μž…λ‹ˆλ‹€. +- Release 브랜치: 버전 릴리슀λ₯Ό λ‹΄λ‹Ήν•˜λŠ” λΈŒλžœμΉ˜μž…λ‹ˆλ‹€. +- Hotfix 브랜치: 온라인 결함을 μˆ˜μ •ν•˜λŠ” λΈŒλžœμΉ˜μž…λ‹ˆλ‹€. +- Master 브랜치: μ΅œμ‹  릴리슀된 λ²„μ „μ˜ 기쀀을 μ €μž₯ν•˜λŠ” λΈŒλžœμΉ˜μž…λ‹ˆλ‹€. + + + +각 κΈ°λŠ₯은 자체 개발 브랜치, 즉 feature 브랜치λ₯Ό 가지고 μžˆμŠ΅λ‹ˆλ‹€. κ°œλ°œμžκ°€ 두 개의 κΈ°λŠ₯을 μž‘μ—…ν•΄μ•Ό ν•  λ•Œ, κ°œλ°œμžλŠ” "check out" λͺ…령을 μ‹€ν–‰ν•˜μ—¬ 브랜치 사이λ₯Ό μ „ν™˜ν•˜κΈ°λ§Œ ν•˜λ©΄ λ©λ‹ˆλ‹€. μ΄λŠ” 개발 κ³Όμ •μ—μ„œ 두 κΈ°λŠ₯의 개발 κ°„ μƒν˜Έ 간섭을 λ°©μ§€ν•˜κΈ° μœ„ν•¨μž…λ‹ˆλ‹€. + +κΈ°λŠ₯을 κ°œλ°œν•  λ•ŒλŠ” λ³„λ„λ‘œ 검증해야 ν•©λ‹ˆλ‹€. κΈ°λŠ₯이 κ²€μ¦λœ ν›„μ—λŠ” 전체 μ†Œν”„νŠΈμ›¨μ–΄ ν”„λ‘œκ·Έλž¨μ„ κ²€μ¦ν•˜κΈ° μœ„ν•΄ develop λΈŒλžœμΉ˜λΌλŠ” 톡합 λΈŒλžœμΉ˜μ— λ³‘ν•©ν•©λ‹ˆλ‹€. 이 κ³Όμ •μ—μ„œ develop λΈŒλžœμΉ˜λŠ” λŒ€λΆ€λΆ„μ˜ 경우 master λΈŒλžœμΉ˜μ™€ μœ μ‚¬ν•©λ‹ˆλ‹€. develop λΈŒλžœμΉ˜λŠ” 항상 μ΅œμ‹  λ―ΈμΆœμ‹œ 버전을 μ €μž₯ν•©λ‹ˆλ‹€. develop λΈŒλžœμΉ˜μ— μžˆλŠ” μ½”λ“œκ°€ κ²€μ¦λ˜μ–΄ μΆœμ‹œν•  수 있게 되면, μΆœμ‹œλ₯Ό μœ„ν•΄ develop λΈŒλžœμΉ˜μ—μ„œ release 브랜치λ₯Ό 생성할 수 μžˆμŠ΅λ‹ˆλ‹€. + +μΆœμ‹œ κ³Όμ •μ—μ„œ release λΈŒλžœμΉ˜μ— 결함이 발견되면, release λΈŒλžœμΉ˜μ—μ„œ 결함을 μˆ˜μ •ν•˜κ³  μˆ˜μ • 사항을 develop λΈŒλžœμΉ˜μ— λ™κΈ°ν™”ν•©λ‹ˆλ‹€. release λΈŒλžœμΉ˜μ— μžˆλŠ” 버전이 μΆœμ‹œλœ ν›„μ—λŠ” μ΅œμ’… μ½”λ“œλ₯Ό λ‹€μ‹œ develop 및 master λΈŒλžœμΉ˜μ— λ™κΈ°ν™”ν•©λ‹ˆλ‹€. μ΄λ ‡κ²Œ ν•˜λ©΄ master λΈŒλžœμΉ˜λŠ” 항상 μž‘λ™ λ²„μ „μ˜ 기쀀을 μœ μ§€ν•©λ‹ˆλ‹€. ν•œνŽΈ develop λΈŒλžœμΉ˜λŠ” 개발 톡합을 μœ„ν•œ μ΅œμ‹  버전을 μœ μ§€ν•©λ‹ˆλ‹€. + +Git-FlowλŠ” 온라인 결함을 μˆ˜μ •ν•˜λŠ” 데 μ „μš©μœΌλ‘œ μ‚¬μš©λ˜λŠ” hotfixλΌλŠ” 브랜치λ₯Ό λ„μž…ν•©λ‹ˆλ‹€. 결함이 μˆ˜μ •λœ ν›„μ—λŠ” develop λΈŒλžœμΉ˜μ— μˆ˜μ§‘λ˜κ³ , κ·Έλ‹€μŒ master λΈŒλžœμΉ˜μ— λ™κΈ°ν™”λ©λ‹ˆλ‹€. 사싀, hotfixλŠ” 특수 κΈ°λŠ₯ 브랜치둜 κ°„μ£Όν•  수 μžˆμ§€λ§Œ, 이λ₯Ό 톡해 제좜된 μ½”λ“œ λ³€κ²½ 사항은 develop λΈŒλžœμΉ˜μ— ν†΅ν•©λ˜λŠ” λ™μ‹œμ— master λΈŒλžœμΉ˜μ— λ™κΈ°ν™”λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€. + +--- + +- κ°œλ°œμžλ“€μ€ 개발 μš”μ²­μ„ λ°›μ•„ develop λΈŒλžœμΉ˜μ—μ„œ feature 브랜치λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€. +- κ°œλ°œμžλ“€μ€ 둜컬 개발 및 둜컬 검증을 μ™„λ£Œν•œ ν›„ μ½”λ“œλ₯Ό feature λΈŒλžœμΉ˜μ— μ œμΆœν•©λ‹ˆλ‹€. +- μ½”λ“œλŠ” feature λΈŒλžœμΉ˜μ—μ„œ κ²€μ¦λ˜λ©°, μƒˆλ‘œ μƒμ„±λœ μ½”λ“œλ₯Ό μ§€μ†μ μœΌλ‘œ λ³‘ν•©ν•©λ‹ˆλ‹€. +- κ°œλ°œμžλ“€μ€ κΈ°λŠ₯ κ°œλ°œμ„ μ™„λ£Œν•˜κ³  feature λΈŒλžœμΉ˜μ—μ„œ 검증 쀑에 였λ₯˜κ°€ κ°μ§€λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 그런 λ‹€μŒ κΈ°λŠ₯ 브랜치의 μ½”λ“œλ₯Ό 개발 λΈŒλžœμΉ˜μ— λ³‘ν•©ν•©λ‹ˆλ‹€. +- **develop λΈŒλžœμΉ˜λŠ” λ‹€λ₯Έ feature 브랜치의 μ½”λ“œκ°€ 포함될 수 μžˆλŠ” 톡합 검증을 μˆ˜ν–‰ν•©λ‹ˆλ‹€.** 톡합 검증이 μ™„λ£Œλ˜λ©΄ feature λΈŒλžœμΉ˜λŠ” μ‚­μ œλ©λ‹ˆλ‹€. +- 예λ₯Ό λ“€μ–΄ develop λΈŒλžœμΉ˜κ°€ μ„±μˆ™ν•œ 릴리슀 버전을 μœ μ§€ν•  λ•Œ, 즉 develop λΈŒλžœμΉ˜κ°€ 전체 ν…ŒμŠ€νŠΈλ₯Ό μˆ˜ν–‰ν•˜κ³  λͺ¨λ“  결함을 μˆ˜μ •ν•œ 경우, **μΆœμ‹œλ₯Ό μœ„ν•΄ release 브랜치**λ₯Ό 생성할 수 μžˆμŠ΅λ‹ˆλ‹€. +- μΆœμ‹œλ₯Ό μ™„λ£Œν•œ ν›„ **release 브랜치의 μ½”λ“œλŠ” develop 및 master λΈŒλžœμΉ˜μ— λ³‘ν•©λ˜κ³ **, κ·Έλ‹€μŒ release λΈŒλžœμΉ˜λŠ” μ‚­μ œλ©λ‹ˆλ‹€. μ—¬κΈ°μ„œ **master λΈŒλžœμΉ˜λŠ” 항상 κ°€μž₯ μ΅œκ·Όμ— μΆœμ‹œλœ μ½”λ“œλ₯Ό μœ μ§€**ν•œλ‹€λŠ” 점에 μœ μ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. + +hotfix ν”„λ‘œμ„ΈμŠ€λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€: + +- μΆœμ‹œ ν›„ 결함이 발견되면 master λΈŒλžœμΉ˜μ—μ„œ hotfix 브랜치λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€. +- 결함을 μˆ˜μ •ν•œ ν›„ hotfix λΈŒλžœμΉ˜μ—μ„œ κ²€μ¦ν•©λ‹ˆλ‹€. +- μˆ˜μ • 사항을 develop 및 master λΈŒλžœμΉ˜μ— λ³‘ν•©ν•©λ‹ˆλ‹€. +- hotfix 브랜치λ₯Ό μ‚­μ œν•©λ‹ˆλ‹€. + +### μž₯점 + +- 브랜치의 λͺ…ν™•ν•œ μ±…μž„κ³Ό ν•¨κ»˜ μ™„μ „ν•œ κ·œμΉ™μ΄ μžˆμŠ΅λ‹ˆλ‹€. +- 전톡적인 μ†Œν”„νŠΈμ›¨μ–΄ 배포에 μ ν•©ν•©λ‹ˆλ‹€. +- 병합이 λ²ˆλ“€λ‘œ 묢이고, λͺ…ν™•ν•˜κ²Œ λ ˆμ΄λΈ”μ΄ μ§€μ •λ˜λ©°, κΉ”λ”ν•˜κ²Œ 좔적할 수 μžˆμ–΄ 맀우 μ² μ €ν•˜κ³  μƒμ„Έν•œ 버전 μ œμ–΄λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. +- 개발 규λͺ¨λ₯Ό μ‰½κ²Œ ν™•μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κΈ°λŠ₯을 κ²©λ¦¬ν•˜κ³  μΆœμ‹œ μ€€λΉ„λ₯Ό μœ„ν•΄ develop λ˜λŠ” master 브랜치λ₯Ό 동결할 ν•„μš”κ°€ 없도둝 ν•˜μ—¬ 병렬 처리 및 지속적인 κ°œλ°œμ„ κ°„μ†Œν™”ν•©λ‹ˆλ‹€. +- μœ μ—°ν•œ 브랜칭 μ „λž΅. 개발 νŒŒμ΄ν”„λΌμΈμ˜ μ—¬λŸ¬ λΆ€λΆ„(예: λ‚˜μ€‘μ— μΆœμ‹œλ  κΈ°λŠ₯κ³Ό ν˜„μž¬ 릴리슀의 κΈ΄κΈ‰ν•œ μš°μ„ μˆœμœ„) 사이λ₯Ό 더 μ‰½κ²Œ 이동할 수 μžˆμŠ΅λ‹ˆλ‹€. +- master 브랜치의 μ½”λ“œλŠ” μ² μ €ν•˜κ²Œ ν…ŒμŠ€νŠΈλ˜κ³  μ •μ œλœ μ½”λ“œλ§Œ μ—…λ°μ΄νŠΈλ˜λ―€λ‘œ 맀우 κΉ”λ”ν•˜κ³  μ •λˆλœ μƒνƒœλ‘œ μœ μ§€λ©λ‹ˆλ‹€. + +## 단점 + +- λ³΅μž‘ν•œ κ·œμΉ™μ΄ μžˆλŠ” λ§Žμ€ 브랜치 +- μΆœμ‹œλœ 버전에 λŒ€ν•œ μœ μ§€ 관리 μž‘μ—…λŸ‰μ΄ 많음 +- Git-Flow의 μ—„κ²©ν•œ ꡬ쑰와 νŠΉμ • 개발 κ²½λ‘œλŠ” μ• μžμΌ λ°©λ²•λ‘ μ˜ 반볡적인 μ ‘κ·Ό 방식과 μΆ©λŒν•©λ‹ˆλ‹€. + +## GitHub-Flow + +Git-Flowμ™€λŠ” 달리 GitHub-FlowλŠ” 릴리슀 브랜치λ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. GitHub-Flow의 κ°œλ…μ— λ”°λ₯΄λ©΄ 버전이 μ€€λΉ„λ˜λ©΄ λ°”λ‘œ 배포할 수 μžˆμŠ΅λ‹ˆλ‹€. λ§ˆμ°¬κ°€μ§€λ‘œ GitHub-FlowλŠ” hotfixκ°€ μ‚¬μ†Œν•œ κΈ°λŠ₯ λ³€κ²½κ³Ό λ™μΌν•˜λ‹€κ³  믿으며, 처리 방법도 μœ μ‚¬ν•΄μ•Ό ν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. + +- **master 브랜치의 λͺ¨λ“  μ½”λ“œλŠ” 배포할 수 μžˆλŠ” μ΅œμ‹  μž‘μ—… λ²„μ „μž…λ‹ˆλ‹€.** +- μƒˆλ‘œμš΄ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λ €λ©΄ master λΈŒλžœμΉ˜μ—μ„œ μƒˆ 브랜치λ₯Ό λ§Œλ“€κ³  λͺ©μ μ„ λͺ…ν™•ν•˜κ²Œ λ‚˜νƒ€λ‚΄κΈ° μœ„ν•΄ λͺ…μ‹œμ μœΌλ‘œ 이름을 μ§€μ •ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ μƒˆλ‘œμš΄ 일정 μ „λž΅μ΄λΌλŠ” 이름을 μ§€μ •ν•©λ‹ˆλ‹€. +- μ½”λ“œ λ³€κ²½ 사항은 κ°€λŠ₯ν•œ ν•œ 자주 둜컬 λΈŒλžœμΉ˜μ— 컀밋해야 ν•©λ‹ˆλ‹€. ν•œνŽΈ λ³€κ²½ 사항은 κ°€λŠ₯ν•œ ν•œ 자주 μ„œλ²„μ˜ λ™μΌν•œ 브랜치 μ΄λ¦„μ˜ λΈŒλžœμΉ˜μ™€ 동기화해야 ν•©λ‹ˆλ‹€. +- μƒˆ μ½”λ“œλ₯Ό master λΈŒλžœμΉ˜μ— λ³‘ν•©ν•˜λ €λ©΄ **μ½”λ“œ κ²€ν† λ₯Ό μš”μ²­ν•˜κΈ° μœ„ν•΄ ν’€ μš”μ²­μ„ μ‹œμž‘**ν•΄μ•Ό ν•©λ‹ˆλ‹€. +- μ½”λ“œ κ²€ν† κ°€ ν†΅κ³Όλ˜κ±°λ‚˜ μ½”λ“œ κ²€ν† κ°€ 진행 쀑인 경우 **λΈŒλžœμΉ˜λŠ” 검증을 μœ„ν•΄ ν…ŒμŠ€νŠΈ ν™˜κ²½μ— 배포해야 ν•©λ‹ˆλ‹€.** +- 검토와 검증이 ν†΅κ³Όλ˜λ©΄ μ½”λ“œλ₯Ό master λΈŒλžœμΉ˜μ— 병합해야 ν•©λ‹ˆλ‹€. λ”°λΌμ„œ master λΈŒλžœμΉ˜λŠ” 항상 배포 κ°€λŠ₯ν•©λ‹ˆλ‹€. +- μ΅œμ‹  릴리슀 νŒ¨ν‚€μ§€λŠ” master 브랜치의 μ΅œμ‹  μ½”λ“œμ—μ„œ μƒμ„±λ©λ‹ˆλ‹€. + +hotfix ν”„λ‘œμ„ΈμŠ€λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€: + +- μΆœμ‹œ ν›„ 결함이 발견되면 master 브랜치(ν”„λ‘œλ•μ…˜ ν™˜κ²½μ— 배포된 νŠΉλ³„ 컀밋 버전)μ—μ„œ hotfix 브랜치λ₯Ό λ§Œλ“­λ‹ˆλ‹€. +- 결함을 μˆ˜μ •ν•œ ν›„ hotfix λΈŒλžœμΉ˜μ—μ„œ κ²€μ¦ν•©λ‹ˆλ‹€. +- hotfix 브랜치λ₯Ό master λΈŒλžœμΉ˜μ— λ³‘ν•©ν•©λ‹ˆλ‹€. +- hotfix 브랜치λ₯Ό μ‚­μ œν•©λ‹ˆλ‹€. + + + +### μž₯점 + +- λͺ…ν™•ν•˜κ³  κ°„λ‹¨ν•œ ν˜‘μ—… κ·œμΉ™ +- 지속적인 톡합 및 배포 +- λΉ λ₯Έ ν”Όλ“œλ°± 루프λ₯Ό ꢌμž₯ν•˜μ—¬ νŒ€μ΄ 문제λ₯Ό λΉ λ₯΄κ²Œ μ‹λ³„ν•˜κ³  λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€. +- GitHub Flowμ—μ„œλŠ” 지속적인 배포가 거의 ν•„μˆ˜μž…λ‹ˆλ‹€. μ™„μ„±λœ κΈ°λŠ₯이 자리 작고 μΆœμ‹œλ₯Ό κΈ°λ‹€λ¦¬λŠ” develop λΈŒλžœμΉ˜κ°€ μ—†μŠ΅λ‹ˆλ‹€. β†’ λΉ λ₯΄κ²Œ μƒμ„±λœ 것이 κ°€μΉ˜λ₯Ό μ „λ‹¬ν•˜κ²Œ λ©λ‹ˆλ‹€. +- 이 브랜칭 μ „λž΅μ„ μ‚¬μš©ν•˜λ©΄ 기술 λΆ€μ±„μ˜ μœ„ν—˜μ΄ μ€„μ–΄λ“­λ‹ˆλ‹€. Git-Flowμ—μ„œλŠ” ν•œ 가지 단좕킀 λ˜λŠ” μ΅œμ ν™”λ˜μ§€ μ•Šμ€ μ½”λ“œ 쑰각이 λΉ λ₯΄κ²Œ λ¬»ν˜€ λ¦¬νŒ©ν† λ§ μ•…λͺ½μ΄ 될 수 μžˆμŠ΅λ‹ˆλ‹€. GitHub-Flowκ°€ κ°•μ‘°ν•˜λŠ” 얕은 ꡬ쑰와 μž‘μ€ λ³€κ²½ 사항은 μž₯기적으둜 기술 뢀채λ₯Ό μ‹λ³„ν•˜κ³  κ΄€λ¦¬ν•˜λŠ” 데 도움이 λ©λ‹ˆλ‹€. + +### 단점 + +- GitHub FlowλŠ” Git-Flow만큼 잘 μ‘°μ§λ˜μ–΄ μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ†λ„λŠ” 포괄성을 ν¬μƒν•˜μ—¬ 얻은 것이며, 전체 개발 ν”„λ‘œμ„ΈμŠ€λ₯Ό κ΄€λ¦¬ν•˜κΈ° μ–΄λ ΅κ²Œ λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€. +- 이 브랜칭 μ „λž΅μ€ 지속적인 배포λ₯Ό κ°•μ‘°ν•©λ‹ˆλ‹€. 일뢀 μ†Œν”„νŠΈμ›¨μ–΄ νŒ€μ—μ„œλŠ” 잘 μž‘λ™ν•  수 μžˆμ§€λ§Œ, λ‹€λ₯Έ νŒ€μ€ λŒ€κ·œλͺ¨ 릴리슀λ₯Ό μ‹œλ„ν•˜κ±°λ‚˜ 배포 전에 μ—¬λŸ¬ κΈ°λŠ₯을 ν•¨κ»˜ ν…ŒμŠ€νŠΈν•˜λ €λŠ” 경우 μ œν•œμ μ΄λΌκ³  λŠλ‚„ 수 μžˆμŠ΅λ‹ˆλ‹€. +- master λΈŒλžœμΉ˜λŠ” 생산 및 develop 브랜치둜 λͺ¨λ‘ κΈ°λŠ₯ν•˜κΈ° λ•Œλ¬Έμ— 더 μ‰½κ²Œ ν˜Όμž‘ν•΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€. μΆœμ‹œ 쀀비와 버그 μˆ˜μ • λͺ¨λ‘ 이 λΈŒλžœμΉ˜μ—μ„œ λ°œμƒν•˜λ©°, 좔가적인 μ£Όμ˜κ°€ ν•„μš”ν•©λ‹ˆλ‹€. + +## μ–΄λ–€ Git μ›Œν¬ν”Œλ‘œμš°κ°€ μ ν•©ν•œκ°€μš”? + +개발 νŒ€μ΄ μ†Œκ·œλͺ¨ μ• μžμΌ νŒ€μ΄κ³  각 μ €μž₯μ†Œμ— λŒ€ν•œ μ œν’ˆμ— λŒ€ν•΄ 단일 릴리슀 버전이 μžˆλ‹€κ³  κ°€μ •ν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€. **GitHub-Flow**κ°€ μŠΉμžμž…λ‹ˆλ‹€. + +GitHub-FlowλŠ” 지속적인 배포 및 릴리슀λ₯Ό μ§€μ›ν•˜λŠ” κ°„λ‹¨ν•˜κ³  효과적인 λ°©λ²•μž…λ‹ˆλ‹€. 이λ₯Ό 톡해 νŒ€μ΄ μƒˆλ‘œμš΄ κΈ°λŠ₯ 및 버그 μˆ˜μ •μ— λŒ€ν•œ λͺ…ν™•ν•˜κ²Œ μ •μ˜λœ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ€‘μ‹¬μœΌλ‘œ μ •λ ¬ν•˜κ³  νŒŒμ΄ν”„λΌμΈμ„ μ΅œλŒ€ν•œ κ°„κ²°ν•˜κ³  배솑 μ€‘μ‹¬μœΌλ‘œ μœ μ§€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 단, νŒ€μ΄ 브랜칭 μ „λž΅μ„ μ€€μˆ˜ν•˜λ„λ‘ ν•΄μ•Ό ν•©λ‹ˆλ‹€.