728x90
λ°μν
μ¬λ¬ κ°λ°μκ° νλμ μ μ₯μμ μμ ν λ, λ³΄λ€ ν¨κ³Όμ μΌλ‘ νμ νκΈ° μν΄ git branch μ λν κ·μΉμ μ νκ³ μ μ₯μλ₯Ό μ νμ©νκΈ° μν workflow λ₯Ό μ μνλ κ²μ λ°λ‘ git branch μ λ΅μ΄λΌκ³ νλ€.
κ°λ°μ ν λ, μΆκ°λ κΈ°λ₯μ΄λ μμ μ¬νμ΄ μλ‘ μν₯μ μ£Όμ§ μκ³ , λ 립μ μΌλ‘ λμμ μ§νν μ μλλ‘ νλ€. λν, κ° λΈλμΉκ° νΉμ μμ μ μ§ννκ³ , νμν κ²½μ° ν΄λΉ μμ λ¨μμ Rollbackμ΄ κ°λ₯νκΈ°μ νλ‘μ νΈ κ΄λ¦¬μ μ μ°μ±μ ν₯μμν¬ μ μλ€.
μ΄λ¬ν μ λ΅μ μνλ λ²μ λ¨μλ‘ κ΄λ¦¬ν μ μλλ‘ νμ¬ νλ‘μ νΈμ κ΄λ¦¬μ λ°°ν¬μ μμ μ±μ λμ¬μ€λ€.
Branch μ λ΅μ λ€μκ³Ό κ°μ 3κ°μ§κ° μλ€.
1οΈβ£ Git flow
2οΈβ£ Github Flow
3οΈβ£ Gitlab flow
1οΈβ£ Git flow
λΈλμΉ μ’ λ₯
- master: μ ν μΆμ λ²μ μ κ΄λ¦¬νλ λ©μΈ λΈλμΉ
- develop: λ€μ μΆμ λ²μ μ μν΄ κ°λ°νλ λΈλμΉ
- feature: μλ‘μ΄ κΈ°λ₯μ κ°λ°νλ λΈλμΉ
- release: λ€μ μΆμ λ²μ μ μ€λΉνλ λΈλμΉ
- hotfix: μΆμλ μ νμ λ²κ·Έλ₯Ό κ³ μΉκΈ° μν λΈλμΉ
Git Flowλ₯Ό νμ©ν κ°λ° μ§ν νλ¦
- μ κ· κΈ°λ₯ κ°λ°μ develop λΈλμΉλ₯Ό κΈ°μ€μΌλ‘ ν feature λΈλμΉλ₯Ό λ°μ μμ
- μμ
μ΄ μλ£λ feature λΈλμΉλ develop λΈλμΉλ‘ λ³ν©.
- PRμ ν΅ν΄ 리뷰 ν λ³ν©νλ λ°©μ
- λ°°ν¬λ₯Ό μν μ€λΉλ λ€μ μΆμ λ²μ μ μν΄ κ°λ°μ€μΈ develop λΈλμΉμμ release λΈλμΉλ₯Ό λ°μ νλ€.
- λ§μ½, ν΄λΉ κ³Όμ μμ λ²κ·Έκ° λ°κ²¬λλ€λ©΄, release λΈλμΉμμ λ°λ‘ λ°μ
- ν μ€νΈ ν, μΌμ μ£ΌκΈ°λ‘ master λΈλμΉλ‘ λ³ν©νμ¬ μ ν μΆμ
- λ°°ν¬ μ΄ν, release λΈλμΉμμ λ°κ²¬λμ§ λͺ»ν μλ‘μ΄ λ²κ·Έλ main λΈλμΉμμ hotfix λΈλμΉλ₯Ό ν ν, hotfix λΈλμΉμμ λ°λ‘ κ³ μΉ ν mainμΌλ‘ λ³ν©
- hotfix λΈλμΉμμ κ³ μΉκ³ , main λΈλμΉμ λ³ν© λμλ€λ©΄, μ΄λ₯Ό develop λΈλμΉμλ λ³ν©
νΉμ§
- releaseμ hotfix λΈλμΉλ₯Ό ν΅ν΄ λͺ νν λ°°ν¬ μ μ°¨λ₯Ό κ°μΆκ³ μλ€.
- λ€μν μ’ λ₯μ λΈλμΉλ₯Ό μ¬μ©νλ€.
- 볡μ‘ν νλ‘μ νΈλ λκ·λͺ¨ νμμ μ¬μ©νκΈ° μ ν©νλ€.
- 볡μ‘μ±κ³Ό Controlμ κ°μ§κ³ μμ΄ νΉμ κΈ°λ₯μ΄λ μμ μ λΉ λ₯΄κ² λ°°ν¬ν΄μΌ ν κ²½μ° λ±μμ μ μ°μ±μ΄ λ¨μ΄μ§.
2οΈβ£ Github Flow
λΈλμΉ μ’ λ₯
- master : baseκ° λλ λΈλμΉ
- feature : masterμ κΈ°λ₯μ μΆκ°νκΈ° μν μλ‘μ΄ λΈλμΉ
Github Flowλ₯Ό νμ©ν κ°λ° μ§ν νλ¦
- master λΈλμΉλ λ°°ν¬λ₯Ό μν μμ€μ½λλ₯Ό κ΄λ¦¬νλ λΈλμΉ.
- λ§μ½, μ κ· κΈ°λ₯ κ°λ°μ΄ νμνλ€λ©΄, master λΈλμΉλ‘λΆν° feature λΈλμΉλ‘ μλ‘ λ°μ μμ μ μ§ννλ€.
- Taskκ° μλ£λλ©΄, Pull Requestλ₯Ό μμ±νμ¬ Reviewλ₯Ό μμ²νκ³ , PRμ feature → master λΈλμΉμ΄λ€.
- 리뷰 μλ£ ν, νΌλλ°±μ΄ λͺ¨λ λ°μλμλ€λ©΄, ν΄λΉ feature λΈλμΉλ₯Ό master λΈλμΉλ‘ λ³ν©νλ€.
νΉμ§
- λ¨μνλ©° μ§μμ μΈ λ°°ν¬λ₯Ό κ°μ‘°νλ©°, master λΈλμΉμμ λ°°ν¬λ₯Ό μννλ€.
- λ¨μνλ©° λΉ λ₯Έ κ°λ° λ° λ°°ν¬λ₯Ό μν΄ μ¬μ©λλ€.
- ν μ€νΈμ κ²μ¦ μ μ°¨λ₯Ό κ±°μΉμ§ μκ³ λ°λ‘ master λΈλμΉλ‘ Merge λλ―λ‘ μνμ±μ΄ μλ€.
3οΈβ£ Gitlab flow
볡μ‘ν Git Flowμ λ무 κ°λ¨ν Github Flowμ μ μΆ©μ
λΈλμΉ μ’ λ₯
- master : μμ μ μΈ μ½λκ° μ μ₯λλ λΈλμΉλ‘ baseκ° λλ λΈλμΉ.
- μ 체μ μΈ ν μ€νΈ μ§νμ΄ μλ£λμ΄ κΈ°λ₯μ λν 보μ₯μ΄ μλ€λ©΄, production λΈλμΉλ‘ λ¨Έμ§.
- λ§μ½ staging λ¨κ³κ° νμνλ€λ©΄, pre-production λΈλμΉλ‘ λ¨Έμ§.
- feature : κ° κΈ°λ₯μ΄ κ°λ°λλ λΈλμΉ.
- master λΈλμΉμμ νμλκ³ PRμ ν΅ν΄ λ€μ λ³ν©λλ€.
- Production : ν μ€νΈκ° λλ κΈ°λ₯μ λ°°ν¬λ₯Ό μν λΈλμΉ
- Pre-Production : λ°°ν¬ μ μ μ νμ ν
μ€νΈ (QA, νμ§κ²μ¬) νλ λΈλμΉ
- ν μ€νΈκ° μ μμ μΌλ‘ μλ£λλ©΄, production κ³Ό master μ κ°κ° PR(Pull Request)μ 보λΈλ€.
Gitlab Flowλ₯Ό νμ©ν κ°λ° μ§ν νλ¦
- κΈ°λ₯ κ°λ°μ΄ νμν κ²½μ°, master λΈλμΉμμ feature λΈλμΉλ₯Ό μμ±νλ€.
- feature λΈλμΉμμ κΈ°λ₯ κ°λ° μλ£ ν, PRμ ν΅ν΄
- κΈ°λ₯μ λν κ²μ¦ λ° λ³΄μ₯μ΄ μλ€λ©΄ production λΈλμΉλ‘ λ¨Έμ§νλ€.
- κΈ°λ₯μ λν κ²μ¦ λ° λ³΄μ₯μ΄ νμνλ€λ©΄, pre-production λΈλμΉλ‘ λ¨Έμ§νλ€.
- pre-production λΈλμΉμμ ν μ€νΈκ° μλ£ λμλ€λ©΄, productionκ³Ό masterμ PRμ ν΅ν΄ λ³ν©νλ€.
νΉμ§
- κ°λ¨νκ³ μ§κ΄μ μΈ νλ‘μ°λ₯Ό μ 곡νμ¬ κ°λ° νλ‘μΈμ€λ₯Ό μ΄ν΄νκΈ° μ½κ² λ§λ λ€.
- GitLabμ λ΄μ₯λ CI/CD νμ΄νλΌμΈμ μ 곡νλ―λ‘ λΉλ, ν
μ€νΈ, λ°°ν¬ λ±μ μλνν μ μλ€.
- μ΄λ₯Ό ν΅ν΄ μμ μ μΈ λ°°ν¬μ λΉ λ₯Έ νΌλλ°±μ μ»μ μ μμ΅λλ€.
- λΉκ΅μ κ°λ¨ν νλ‘μΈμ€λ₯Ό μ 곡νκΈ° λλ¬Έμ, λκ·λͺ¨ νλ‘μ νΈμμλ νμ κ³Ό κ΄λ¦¬κ° μ΄λ €μΈ μ μλ€.
- νΉν μ§μμ μΈ λ°°ν¬κ° κ°μ‘°λλ νκ²½μμ ν¨κ³Όμ μ΄λ€.
728x90
λ°μν
'πββ¬ git' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
git history μμ νκΈ° (0) | 2022.10.04 |
---|---|
git merge μλ¬ (0) | 2022.07.06 |