-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
104 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
## π [Git-Flow vs GitHub-Flow](https://quangnguyennd.medium.com/git-flow-vs-github-flow-620c922b2cbd) | ||
|
||
### ποΈ λ²μ λ μ§: 2024.07.22 | ||
|
||
### π§ λ²μν ν¬λ£¨: μν(μ΅μμ°) | ||
|
||
--- | ||
|
||
<img src="https://miro.medium.com/v2/resize:fit:1400/format:webp/0*fgnh970Zf7cdoplU"/> | ||
|
||
## Git-Flow | ||
|
||
Git-Flowλ μλ‘ λ€λ₯Έ κΈ°λ₯ κ°μ λ³λ ¬ κ°λ° μꡬλ₯Ό ν΄κ²°νλ λ°©λ²μ μ 곡ν©λλ€. κΈ°λ₯μ κ°λ°νκΈ° μμνλ©΄ master λΈλμΉμμ feature λΈλμΉλ₯Ό μμ±ν©λλ€. κ·Έλ° λ€μ κΈ°λ₯μ λν λͺ¨λ κ°λ° μμ μ μ΄ feature λΈλμΉμμ μνλ©λλ€. κΈ°λ₯ μμ μ μλ£ν νμλ 릴리μ€λ₯Ό μν μ£Ό μ½λ κ²½λ‘λ‘ feature λΈλμΉλ₯Ό λ€μ λ³ν©ν©λλ€. | ||
|
||
Git-Flowλ λ€μκ³Ό κ°μ λΈλμΉλ₯Ό κ°μ§κ³ μμ΅λλ€. | ||
|
||
- Feature λΈλμΉ: κ°λ°μκ° κΈ°λ₯μ κ°λ°νλ λ° μ¬μ©νλ λΈλμΉμ λλ€. | ||
- Develop λΈλμΉ: κ°λ°λ κΈ°λ₯μ μμ§νλ λΈλμΉμ λλ€. | ||
- Release λΈλμΉ: λ²μ 릴리μ€λ₯Ό λ΄λΉνλ λΈλμΉμ λλ€. | ||
- Hotfix λΈλμΉ: μ¨λΌμΈ κ²°ν¨μ μμ νλ λΈλμΉμ λλ€. | ||
- Master λΈλμΉ: μ΅μ 릴리μ€λ λ²μ μ κΈ°μ€μ μ μ₯νλ λΈλμΉμ λλ€. | ||
|
||
<img src="https://miro.medium.com/v2/resize:fit:1400/format:webp/1*hmZzuG8oU7fqsnpfTgKDUw.png"/> | ||
|
||
κ° κΈ°λ₯μ μ체 κ°λ° λΈλμΉ, μ¦ 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 λΈλμΉλ₯Ό μμ ν©λλ€. | ||
|
||
<img src="https://miro.medium.com/v2/resize:fit:1400/format:webp/1*bvubr15Z_l3UknX1w8Mx1A.png"/> | ||
|
||
### μ₯μ | ||
|
||
- λͺ ννκ³ κ°λ¨ν νμ κ·μΉ | ||
- μ§μμ μΈ ν΅ν© λ° λ°°ν¬ | ||
- λΉ λ₯Έ νΌλλ°± 루νλ₯Ό κΆμ₯νμ¬ νμ΄ λ¬Έμ λ₯Ό λΉ λ₯΄κ² μλ³νκ³ λ³κ²½ν μ μμ΅λλ€. | ||
- GitHub Flowμμλ μ§μμ μΈ λ°°ν¬κ° κ±°μ νμμ λλ€. μμ±λ κΈ°λ₯μ΄ μ리 μ‘κ³ μΆμλ₯Ό κΈ°λ€λ¦¬λ develop λΈλμΉκ° μμ΅λλ€. β λΉ λ₯΄κ² μμ±λ κ²μ΄ κ°μΉλ₯Ό μ λ¬νκ² λ©λλ€. | ||
- μ΄ λΈλμΉ μ λ΅μ μ¬μ©νλ©΄ κΈ°μ λΆμ±μ μνμ΄ μ€μ΄λλλ€. Git-Flowμμλ ν κ°μ§ λ¨μΆν€ λλ μ΅μ νλμ§ μμ μ½λ μ‘°κ°μ΄ λΉ λ₯΄κ² 묻ν 리ν©ν λ§ μ λͺ½μ΄ λ μ μμ΅λλ€. GitHub-Flowκ° κ°μ‘°νλ μμ ꡬ쑰μ μμ λ³κ²½ μ¬νμ μ₯κΈ°μ μΌλ‘ κΈ°μ λΆμ±λ₯Ό μλ³νκ³ κ΄λ¦¬νλ λ° λμμ΄ λ©λλ€. | ||
|
||
### λ¨μ | ||
|
||
- GitHub Flowλ Git-Flowλ§νΌ μ μ‘°μ§λμ΄ μμ§ μμ΅λλ€. μλλ ν¬κ΄μ±μ ν¬μνμ¬ μ»μ κ²μ΄λ©°, μ 체 κ°λ° νλ‘μΈμ€λ₯Ό κ΄λ¦¬νκΈ° μ΄λ ΅κ² λ§λ€ μ μμ΅λλ€. | ||
- μ΄ λΈλμΉ μ λ΅μ μ§μμ μΈ λ°°ν¬λ₯Ό κ°μ‘°ν©λλ€. μΌλΆ μννΈμ¨μ΄ νμμλ μ μλν μ μμ§λ§, λ€λ₯Έ νμ λκ·λͺ¨ 릴리μ€λ₯Ό μλνκ±°λ λ°°ν¬ μ μ μ¬λ¬ κΈ°λ₯μ ν¨κ» ν μ€νΈνλ €λ κ²½μ° μ νμ μ΄λΌκ³ λλ μ μμ΅λλ€. | ||
- master λΈλμΉλ μμ° λ° develop λΈλμΉλ‘ λͺ¨λ κΈ°λ₯νκΈ° λλ¬Έμ λ μ½κ² νΌμ‘ν΄μ§ μ μμ΅λλ€. μΆμ μ€λΉμ λ²κ·Έ μμ λͺ¨λ μ΄ λΈλμΉμμ λ°μνλ©°, μΆκ°μ μΈ μ£Όμκ° νμν©λλ€. | ||
|
||
## μ΄λ€ Git μν¬νλ‘μ°κ° μ ν©νκ°μ? | ||
|
||
κ°λ° νμ΄ μκ·λͺ¨ μ μμΌ νμ΄κ³ κ° μ μ₯μμ λν μ νμ λν΄ λ¨μΌ λ¦΄λ¦¬μ€ λ²μ μ΄ μλ€κ³ κ°μ ν΄ λ³΄κ² μ΅λλ€. **GitHub-Flow**κ° μΉμμ λλ€. | ||
|
||
GitHub-Flowλ μ§μμ μΈ λ°°ν¬ λ° λ¦΄λ¦¬μ€λ₯Ό μ§μνλ κ°λ¨νκ³ ν¨κ³Όμ μΈ λ°©λ²μ λλ€. μ΄λ₯Ό ν΅ν΄ νμ΄ μλ‘μ΄ κΈ°λ₯ λ° λ²κ·Έ μμ μ λν λͺ ννκ² μ μλ νλ‘μΈμ€λ₯Ό μ€μ¬μΌλ‘ μ λ ¬νκ³ νμ΄νλΌμΈμ μ΅λν κ°κ²°νκ³ λ°°μ‘ μ€μ¬μΌλ‘ μ μ§ν μ μμ΅λλ€. λ¨, νμ΄ λΈλμΉ μ λ΅μ μ€μνλλ‘ ν΄μΌ ν©λλ€. |