κ°λ° μ΄λ³΄μλ₯Ό μν Git λΈλμΉ μ λ΅: feature λΈλμΉλ‘ μμ νκ² κ°λ°νκ³ mainμ λ³ν©νλ κΈ°λ³Έ νλ¦
κ°λ° μ΄λ³΄μλ₯Ό μν Git λΈλμΉ μ λ΅: feature λΈλμΉλ‘ μμ νκ² κ°λ°νκ³ mainμ λ³ν©νλ κΈ°λ³Έ νλ¦ μ²μ GitμΌλ‘ νμ (νΉμ...
κ°λ° μ΄λ³΄μλ₯Ό μν Git λΈλμΉ μ λ΅: feature λΈλμΉλ‘ μμ νκ² κ°λ°νκ³ mainμ λ³ν©νλ κΈ°λ³Έ νλ¦
μ²μ GitμΌλ‘ νμ (νΉμ νΌμ νλ‘μ νΈ)μ μμνλ©΄ μ μΌ λ¬΄μμ΄ μκ°μ΄ μμ΅λλ€. βmainμμ μμ νλ€κ° λ§μΉλ©΄ μ΄μ©μ§?β μ€μ λ‘ μ΄λ³΄ μμ μ κΈνκ² μμ νλ€κ° λμνλ κΈ°λ₯μ κΉ¨λ¨λ¦¬κ±°λ, λλλ¦¬λ €λ€ μ»€λ°μ΄ κΌ¬μ΄λ κ²½νμ ν λ²μ―€ νκ² λ©λλ€.
1) λΈλμΉλ μ νμν κΉ?
λΈλμΉλ νλ§λλ‘ μμ μ λΆλ¦¬νλ μμ μ₯μΉμ λλ€.
main: μΈμ λ λ°°ν¬/μ€ν κ°λ₯ν βκΈ°μ€μ βfeature/*: νΉμ κΈ°λ₯μ κ°λ°νλ βμμ 곡κ°β μ¦, κΈ°λ₯ κ°λ° μ€μλ μ€μν΄λmainμ΄ κΉ¨μ§μ§ μμ΅λλ€. κ°λ° μ΄λ³΄μμκ² μ΄κ² μ λ§ ν½λλ€.
2) μΆμ²νλ κΈ°λ³Έ λΈλμΉ κ΅¬μ‘°
λΈλμΉ μ΄λ¦ κ·μΉ(κ°λ¨ λ²μ )
main: μμ λ²μ feature/login: λ‘κ·ΈμΈ κΈ°λ₯feature/profile-edit: νλ‘ν μμ κΈ°λ₯ νλ§λ€ κ·μΉμ΄ λ€λ₯Ό μ μμ§λ§, μ΄λ³΄μλΌλ©΄ βfeature/κΈ°λ₯λͺ β μ λλ‘ μμνλ©΄ μΆ©λΆν©λλ€.
3) μ€μ κΈ°λ³Έ νλ¦: feature λ§λ€κ³ mainμ λ³ν©νκΈ°
μλλ κ°μ₯ λ§μ΄ μ°λ βμ μ 루ν΄βμ λλ€.
1) μ΅μ main λ°κΈ°
git switch main git pull origin main
mainμ΄ μ΅μ μνμΈμ§ νμΈνκ³ μμν©λλ€. μ΄ μ΅κ΄μ΄ μΆ©λμ μ€μ¬μ€μ.
2) feature λΈλμΉ λ§λ€κ³ μ΄λ
git switch -c feature/login
μ΄μ λΆν°μ λͺ¨λ μμ μ feature/loginμμλ§ ν©λλ€.
3) μμ νκ³ μμ λ¨μλ‘ μ»€λ°
git status
git add .
git commit -m "Add login form UI"
μ»€λ° λ©μμ§λ 무μμ νλμ§ ν λ¬Έμ₯μΌλ‘ λ¨κΈ°λ©΄ λμ€μ λλ리기λ μ½μ΅λλ€. κ°λ₯νλ©΄ βν μ»€λ° = ν λ³νβλ‘ μκ² μͺΌκ°λ κ² μ’μμ.
4) μ격μ νΈμ
git push -u origin feature/login
-uλ₯Ό λΆμ΄λ©΄ λ€μλΆν°λ git pushλ§ ν΄λ κ°μ λΈλμΉλ‘ μ¬λΌκ°λλ€.
5) main μ΅μ λ³κ²½ λ°μ(λ³ν© μ μ 리)
κΈ°λ₯ κ°λ° μ€ λ€λ₯Έ μ¬λμ΄ mainμ λ°κΏ¨μ μ μμ΄μ. λ³ν© μ μ λ΄ λΈλμΉμ mainμ ν λ² λ°μνλ©΄ μΆ©λμ΄ μ€μ΄λλλ€.
git switch main git pull origin main git switch feature/login git merge main
μΆ©λμ΄ λλ©΄ νμΌμ μ΄μ΄ μΆ©λ νμλ₯Ό ν΄κ²°ν λ€:
git add .
git commit -m "Merge main into feature/login"
6) mainμ λ³ν©
λ‘컬μμ λ³ν©νλ κΈ°λ³Έ ννλ μ΄λ κ² κ°λλ€.
git switch main git merge feature/login
λ³ν©μ΄ λλλ©΄ μ격 mainμ λ°μ:
git push origin main
7) λΈλμΉ μ 리(μ νμ΄μ§λ§ κ°λ ₯ μΆμ²)
git branch -d feature/login
μ격 λΈλμΉκΉμ§ μ§μ°λ €λ©΄:
git push origin --delete feature/login
μμ μ΄ λλ λΈλμΉλ₯Ό μ 리νλ©΄ μ μ₯μκ° κΉλν΄μ§κ³ , βμ§κΈ μ§ν μ€μΈ μμ βλ λ λͺ νν΄μ§λλ€.
4) μ΄λ³΄μκ° μμ£Ό νλ μ€μ 3κ°μ§μ μλ°© ν
μ€μ 1) mainμμ λ°λ‘ κ°λ°ν΄λ²λ¦Ό
κΈν΄μ mainμμ μμ νκ³ μ»€λ°ν΄λ²λ¦¬λ κ²½μ°κ° λ§μ΅λλ€.
μλ°© ν: μμ
μμ μ , λ¨Όμ git branchλ‘ λ΄κ° μ΄λ μλμ§ νμΈνλ μ΅κ΄μ λ€μ΄μΈμ.
μ€μ 2) κΈ°λ₯ μ¬λ¬ κ°λ₯Ό ν λΈλμΉμ μμ
feature/loginμμ λ‘κ·ΈμΈλ νκ³ , νλ‘ν μμ λ νκ³ β¦ μ΄λ κ² μμ΄λ©΄ λλ리기 νλ€μ΄μ§λλ€.
μλ°© ν: κΈ°λ₯μ΄ λ¬λΌμ§λ©΄ λΈλμΉλ₯Ό μλ‘ νμΈμ. λΈλμΉλ 곡μ§μ
λλ€.
μ€μ 3) 컀λ°μ λ무 ν¬κ² ν λ²μ ν¨
λμ€μ βμ΄λμ λ¬Έμ κ° μκ²Όμ§?βλ₯Ό μ°ΎκΈ° μ΄λ €μμ. μλ°© ν: UI, API μ°λ, μμΈμ²λ¦¬μ²λΌ λ©μ΄λ¦¬λ₯Ό λλ 컀λ°νμΈμ.
5) μμ μμ μλ리μ€λ‘ κ° μ‘κΈ°
μλ₯Ό λ€μ΄ βλ‘κ·ΈμΈ λ²νΌμ λλ₯΄λ©΄ μλ²μ μμ²νκ³ μ±κ³΅ μ νμΌλ‘ μ΄λβμ λ§λ λ€κ³ ν΄λ³Όκ²μ.
feature/loginλΈλμΉ μμ±- 1μ°¨ 컀λ°: λ‘κ·ΈμΈ νλ©΄ UI μΆκ°
- 2μ°¨ 컀λ°: λ‘κ·ΈμΈ API νΈμΆ μ½λ μΆκ°
- 3μ°¨ 컀λ°: μλ¬ λ©μμ§ μ²λ¦¬
- λ³ν© μ
mainμ΅μ λ°μ mainμ λ³ν© ν λΈλμΉ μμ μ΄λ κ² νλ©΄ λ¬Έμ κ° μ겨λ νΉμ 컀λ°λ§ λλ리기 μ½κ³ , κΈ°λ₯ λ¨μκ° λͺ νν΄μ Έμ νμ μλ κ°ν©λλ€.
λ§λ¬΄λ¦¬: βmainμ μμ μ§λβλ‘ λλ μ΅κ΄μ΄ μ€λ ₯μ λ§λ λ€
κ°λ° μ΄λ³΄μμΌμλ‘ μ€μν 건 μλλ³΄λ€ μμ νκ² μ€μν μ μλ ꡬ쑰μ
λλ€. feature λΈλμΉλ₯Ό μ°λ©΄ λ§μ νΈνκ² μ€ννκ³ , κ²μ¦λ κ²λ§ mainμ μ¬λ¦΄ μ μμ΄μ.
μ€λ μκ°ν νλ¦λλ‘λ§ λ°λ³΅ν΄λ, Gitμ΄ κ°μκΈ° μ΄λ ΅κ² λκ»΄μ§λ μκ°μ΄ ν μ€μ΄λ€ κ²λλ€.
β¬οΈ μ΄ κΈμ΄ λμμ΄ λμ ¨λ€λ©΄, μλ κ΄κ³ λ₯Ό ν λ²λ§ ν΄λ¦ν΄μ£ΌμΈμ! μ μκ² ν° νμ΄ λ©λλ€ πββοΈ β¬οΈ