ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Git] Rebase μ‚¬μš©ν•˜κΈ°
    General/🟒 General 2022. 2. 13. 14:57

    μ•ˆλ…•ν•˜μ„Έμš”πŸΆ

    이번 μ‹œκ°„μ—λŠ” κ°œλ…μ€ μ•Œμ•˜μ§€λ§Œ μ‹€μ œ μ μš©μ€ 많이 해보지 μ•Šμ•˜λ˜

    rebase 에 λŒ€ν•΄ μ •λ¦¬ν•΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€.

    μ΄μ œλΆ€ν„°λΌλ„ 깃이 μ œκ³΅ν•˜λŠ” λ‹€μ–‘ν•œ κΈ°λŠ₯듀을 μ œλŒ€λ‘œ μ‚¬μš©ν•΄λ³΄λ €κ΅¬μš”.

    λ¦¬λ² μ΄μŠ€λŠ” μ–΄λ €μš΄ κ°œλ…μ΄ μ•„λ‹™λ‹ˆλ‹€.

    그럼 μ‹œμž‘ν• κ²Œμš”!

     

    무엇을 ν•˜λŠ” λͺ…령인가?

    베이슀 컀밋을 κ°ˆμ•„μΉ˜κΈ° ν•œλ‹€.

    base λ₯Ό λ‹€μ‹œ(re) μ •ν•œλ‹€.

     

    λͺ©μ 

    λΆˆν•„μš”ν•œ 병합 컀밋을 μ€„μ—¬μ„œ

    κ·Έλž˜ν”„λ₯Ό κΉ”λ”ν•˜κ²Œ 보이게 ν•  수 μžˆλ‹€.

     

    ν™œμš©ν•  수 μžˆλŠ” 상황

    upstream 의 main 브랜치둜 ν’€ λ¦¬ν€˜μŠ€νŠΈλ₯Ό 보내렀고 ν•˜λŠ”λ°, merge conflict κ°€ λ°œμƒν•œλ‹€.

    보톡과 같은 상황이면 μžμ‹ μ˜ μž‘μ—… 브랜치둜 main 을 λ¨Έμ§€ν•΄μ„œ μΆ©λŒμ„ ν•΄κ²°ν•œν›„,

    λ‹€μ‹œ pr 을 보내면 λœλ‹€. ( fast-forward merge κ°€ 될 것 이닀 )

    μ΄λ ‡κ²Œ ν•˜λ©΄ μ›λž˜ 변경점에 λŒ€ν•˜μ—¬ 1개의 μ»€λ°‹λ§Œ 있으면 λ˜λŠ”λ°, μΆ©λŒμ„ ν•΄κ²°ν•˜κΈ° μœ„ν•œ λΆˆν•„μš”ν•œ 컀밋이 μΆ”κ°€λœλ‹€.

    이 λΆˆν•„μš”ν•œ 컀밋을 쀄일 수 μžˆλŠ” 방법이 rebase 이닀.

     

    μ†ŒμŠ€νŠΈλ¦¬μ—μ„œ μ‚¬μš©λ²•

    μž‘μ—… λΈŒλžœμΉ˜μ— 체크아웃 λ˜μ–΄μžˆλŠ”μ§€ 확인 ν›„, λ¦¬λ² μ΄μŠ€ν•  컀밋을 였λ₯Έμͺ½ ν΄λ¦­ν•˜μ—¬  rebase λ₯Ό μ§„ν–‰ν•œλ‹€.

    좩돌이 λ°œμƒν•œλ‹€λ©΄ ν•΄κ²°ν•˜κ³  μ»€λ°‹ν•œλ‹€.

    push ν•˜μ—¬ 원격에도 λ°˜μ˜ν•œλ‹€.

    (ν•„μš” μ‹œ) pr ν•œλ‹€.

     

     CLI μ‚¬μš©λ²•

    git rebase [리베이슀 λŒ€μƒ 브랜치] [리베이슀 브랜치]

    μ΄λ•Œ, 리베이슀 λΈŒλžœμΉ˜μ— 체크아웃 쀑이라면 [리베이슀 λΈŒλžœμΉ˜λŠ” μƒλž΅κ°€λŠ₯]

    예λ₯Ό λ“€μ–΄, master 브랜치의 μ΅œμ‹  μ»€λ°‹μœΌλ‘œ feature 브랜치λ₯Ό λ¦¬λ² μ΄μŠ€ν•˜λ €λŠ” 경우

    git rebase master feature

     

    feature λΈŒλžœμΉ˜μ— μ²΄ν¬μ•„μ›ƒλ˜μ–΄μžˆλ‹€λ©΄

    git rebase master

     

    μ£Όμ˜μ‚¬ν•­

    λ¦¬λ² μ΄μŠ€λŠ” 혼자 μž‘μ—…ν•˜λŠ” λΈŒλžœμΉ˜μ—μ„œ ν•΄μ•Όν•œλ‹€.

    잘λͺ»ν•˜λ©΄ 꼬일 수 있기 λ•Œλ¬Έμ΄λ‹€.

     

    κ³΅λΆ€ν•˜λ©΄μ„œ ν™˜κΈ°ν•œ κ°œλ…

    fetch

    μ‹€μ œ μ½”λ“œμ— λ°˜μ˜λ˜μ§€ μ•Šκ³  이λ ₯만 κ°€μ Έμ˜¨λ‹€λŠ” νŠΉμ§•μ΄ μžˆλ‹€.

    upstream κ³Ό 같이 λ‹€λ₯Έ 원격 μ €μž₯μ†Œμ˜ 컀밋 이λ ₯을 κ°€μ Έμ˜€κ³  싢을 λ•Œ ν™œμš©ν•˜λ©΄ μ’‹κ² λ‹€.

    upstream

    원본 μ €μž₯μ†Œλ₯Ό κ°€λ¦¬ν‚€λŠ” κ΄€μš©μ μΈ 단어이닀.

    λ§Œμ•½ A λΌλŠ” μ €μž₯μ†Œλ₯Ό fork ν•œ B μ €μž₯μ†Œκ°€ μžˆλ‹€λ©΄, B 의 upstream 은 A 이닀.

    fast-forward

    λ³‘ν•©μ˜ 결과물이 λ³‘ν•©ν•˜λ €λŠ” λΈŒλžœμΉ˜μ™€ λ˜‘κ°™μ€ 경우

    A λΈŒλžœμΉ˜μ™€ B 브랜치 머지 결과물이 B 브랜치인 경우λ₯Ό 가리킨닀.


     

    μ˜€λŠ˜λ„ λ‚˜λŠ” μ„±μž₯ν–ˆλ‹€!!πŸ”₯

     

    πŸ€–πŸŸ’[우짱의 iOS λΈ”λ‘œκ·Έ]πŸ”΅πŸ’»

    iOSλ₯Ό κ³΅λΆ€ν•˜λ©΄μ„œ 배운 λ‚΄μš©μ„ κΈ°λ‘ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

     

    [참고 자료]

    λŒ“κΈ€

μ–΄μ œλ³΄λ‹€ λ°œμ „ν•œ λ‚˜