π git diff branch1..branch2
μλ νμΈμ, μ΄λ² μκ°μλ git diff λͺ λ Ήμ΄λ₯Ό ν΅ν΄ λ λΈλμΉ μ¬μ΄μμ μ°¨μ΄μ μ νμΈν΄λ³΄κ² μ΅λλ€.
π‘ κ°μ
λ³΄ν΅ μ½λ μ΄λ ₯μ κ΄λ¦¬νλ λκ΅¬λ‘ git, github(gitlab, bitbucket) λ±μ μ¬μ©μ νλλ°μ,
git-flow μ λ΅μ μ¬μ©νμ¬ main, develop, feature, hotfix λ±μ λΈλμΉλ₯Ό κ΄λ¦¬νλ€ λ³΄λ©΄ λΈλμΉ κ° μ½λκ° λκΈ°νκ° λμ§ μμ κ²½μ°κ° μ‘΄μ¬ν©λλ€.
λ³΄ν΅ git-flow μ λ΅μμ μ¬μ©λλ λΈλμΉμ λν μ λ΅μ λ€μκ³Ό κ°μ΅λλ€
- main(master) : μ€μ μμ© νκ²½μ λ°μνλ λΈλμΉ
- develop : λ€μ μΆμ λ²μ μ λν΄ κ°λ°νλ λΈλμΉ
- feature : κΈ°λ₯μ κ°λ°ν λ μ¬μ©νλ λΈλμΉ
- hotfix : μμ© νκ²½μμ λ°μν λ²κ·Έλ₯Ό μμ ν λ μ¬μ©νλ λΈλμΉ
νμ¬λ§λ€ μ‘°κΈμ© μ°¨μ΄μ μ μμ μ μμΌλ, 보ν΅μ μμ λΉμ·ν λ§₯λ½μΌλ‘ κ° λΈλμΉλ₯Ό μ¬μ©ν©λλ€.
μ git-flow μ λ΅μ λ°λ₯΄λ©΄ μΌλ°μ μΌλ‘ κ°λ°μ μ§νν ν μμ© νκ²½μ λ°μνκΈ° κΉμ§μ λΈλμΉ κ΄λ¦¬λ λ€μκ³Ό κ°μ΅λλ€.
(μ΄λ¬ν κ³Όμ λ νμ¬λ§λ€ λ€λ₯Ό μ μμ΅λλ€. ^^)
- feature λΈλμΉμμ κΈ°λ₯μ κ°λ°ν ν develop λΈλμΉλ‘ PR & Merge
- develop λΈλμΉ -> main(master) λΈλμΉλ‘ PR & Merge
- hotfix -> main λΈλμΉλ‘ PR & Merge(κΈ΄κΈνκ² λ²κ·Έλ₯Ό μμ ν κ²½μ°)
μμ κ°μ κ³Όμ μμ μ¬λ¬ λͺ μ΄ νμ μ μ§ννλ€ λ³΄λ©΄ develop λΈλμΉμλ λ°μνμΌλ mainμλ λ°μλμ§ μμ κ²½μ°λ μ‘΄μ¬ν μ μκ³ , hotfix -> main μΌλ‘ λ°μνμΌλ main -> develop λΈλμΉλ‘ λ°μλμ§ μλ κ²½μ°λ μμ΅λλ€.
λ°λΌμ git diff λͺ λ Ήμ΄λ₯Ό ν΅ν΄ λ λΈλμΉ μ¬μ΄μμ μ°¨μ΄μ μ νμΈν΄λ³΄κ² μ΅λλ€.
π‘ git diff λͺ λ Ήμ΄ μ¬μ©νκΈ°
νμ¬ μ»€λ° λ‘κ·Έλ λ€μκ³Ό κ°μ΅λλ€.
git log --branches --decorate --graph --oneline
λΈλμΉμ λΈλμΉ μ¬μ΄μ μ°¨μ΄μ μ νμΈνλ diff λͺ λ Ήμ΄λ λ€μκ³Ό κ°μ΅λλ€.
// branch 2λ₯Ό κΈ°μ€μΌλ‘ branch1μλ μκ³ , branch 2μλ§ μ‘΄μ¬νλ λ΄μ
git diff branch1..branch2
μλ μ½λλ μμ λ‘ μ΄ν΄λ³Ό main, develop, feature/12 λΈλμΉμ κ°κ°μ μ½λμ λλ€.
main λΈλμΉ
public class MainBranch {
public static void main(String[] args) {
System.out.println("Common main branch");
}
}
develop λΈλμΉ
public class DevelopBranch {
public static void main(String[] args) {
System.out.println("Develop Branch");
}
}
public class MainBranch {
public static void main(String[] args) {
System.out.println("-------------------");
System.out.println("Common main branch");
System.out.println("This is develop branch");
}
}
feature/12 λΈλμΉ
public class FeatureBranch {
public static void main(String[] args) {
System.out.println("Feature Branch");
}
}
public class MainBranch {
public static void main(String[] args) {
System.out.println("-------------------");
System.out.println("Common main branch");
System.out.println("This is feature branch");
}
}
git diff main..develop
DevelopBranch ν΄λμ€μ κ²½μ° main λΈλμΉμλ μ‘΄μ¬νμ§ μκΈ° λλ¬Έμ μ μ²΄κ° μ΄λ‘μ(+)μΌλ‘ 보μ΄κ³ , MainBranchμ κ²½μ° μΌλΆ μΆκ°λ λΆλΆλ§ μ΄λ‘μ(+)μΌλ‘ 보μ΄κ² λ©λλ€.
git diff develop..main
develop..main μ κ²½μ° main..develop μλ λ°λλ‘ main λΈλμΉμ μ‘΄μ¬νμ§ μλ μ½λλ λΉ¨κ°μ(-)μΌλ‘ λνλκ² λ©λλ€.
git diff develop..feature/12
develop..feature/12 μ κ²½μ° feature/12 λΈλμΉλ₯Ό κΈ°μ€μΌλ‘ DevelopBranch ν΄λμ€λ μ‘΄μ¬νμ§ μμΌλ―λ‘ λΉ¨κ°μ(-) μΌλ‘ λνλκ³ , FeatureBranch ν΄λμ€μ κ²½μ° μ‘΄μ¬νλ―λ‘ μ΄λ‘μ(+)μΌλ‘ λνλλ©°, MainBranchμμλ λμΌνκ² λνλλ κ²μ νμΈν μ μμ΅λλ€.
π‘ λ§λ¬΄λ¦¬
μ΄μμΌλ‘ git diff λͺ λ Ήμ΄μ λν΄ κ°λ΅ν μ΄ν΄λ³΄μμ΅λλ€.
μ μμ λ λ§€μ° κ°λ¨νκ² μμ±λ μ½λμ΄κΈ° λλ¬Έμ κ΅³μ΄ λͺ λ Ήμ΄λ₯Ό μ¬μ©νμ§ μλλΌλ ν λμ μ°¨μ΄μ μ νμ ν μ μμ΅λλ€.
νμ§λ§ μ€λ¬΄μμ μμ±λλ μ½λμ κ²½μ° μλ°±~μμ² λΌμΈμ μ΄λ₯΄κΈ°μ μ°¨μ΄μ μ λμΌλ‘ νμΈνκΈ°μλ νλ€ μ μμ΅λλ€.
μ΄ λ μ λͺ λ Ήμ΄λ₯Ό ν΅ν΄ λ λΈλμΉ μ¬μ΄μμ μ°¨μ΄μ μ λ³΄λ€ μ½κ² νμ ν μ μμ λ― ν©λλ€.
λκΈ