[Git] μ¬λ¬ κ°μ κΉ μ»€λ° νλ²μ μμ νκΈ°
μλ‘
μλλ κ°λ°ν λ git commit -> push origin λ₯Ό λ°λ³΅νλ©΄μ κ³μ pushνλλ° μ»€λ°μ μμ νλ κ²μ΄ λκ°νλ€.
git commit --amendλ₯Ό μ¬μ©νλ κ²μ pushνκΈ° μ΄μ μ 컀λ°λ§ κ°λ₯νκ³ μ΅κ·Όμ 컀λ°λ§ μμ μ΄ κ°λ₯νλ€.
κ·Έλμ λλ μ΅κ·Όμ pushν 컀λ°μ μμ νκ³ λ€μ 컀λ°νλ λ°©λ²μ κ³μν΄μ μ΄μ©νλ€.
μλ§ μ»€λ°μ νκ³ νλ²μ pushνλ λ°©λ²μ΄ μ’μμ§ μ»€λ°μ νκ³ νΈμλ₯Ό λ°λ‘λ°λ‘ νλ λ°©λ²μ΄ μ’μμ§μ λν νλ¨μ΄ μμ§ μμμ κ·Έλ₯ μ²μμ μκ² λ λ°©λ²λλ‘ μ»€λ° -> νΈμλ₯Ό λ°λ³΅νλ€λ³΄λ μ΅κ·Ό push commit μμ -> λ€μ commit -> λ€μ push μ λ°λ³΅μ΄μλ€.
μ¬κΈ°μ νΉμ μ΅κ·Όμ pushν commitμ μμ νλ λͺ λ Ήμ΄λ μλμ κ°λ€.
git rebase HEAD^
κ·Όλ° μ΅κ·Όμ κΈ°λ₯ ꡬνμμ 컀λ°μ νλ€κ° μ»€λ° λ©μμ§μ <scope>κΉμ§ ν¬ν¨ν΄μ μ κ³ μμλλ°
- <scope> μ€λͺ : https://sundery.tistory.com/218
ν΄λλͺ μ κ·Έλ₯ (utils)λ‘ μμ±ν΄λ λλλ° νμΌμ νμ₯μλͺ μ κΌ μμ±ν΄μΌ νλ? νλ μλ¬Έμ΄ λ€μλ€. κ·Όλ° νμ¬ λ΄κ° μμ±νλ νμΌμμλ .js νμ₯μ λ°μ μκΈ° λλ¬Έμ μλ΅νλ κ²μ΄ κΉλν κ² κ°λ€.
κ·Όλ° λ§μ½μ .js λ₯Ό λΆμ΄λ κ² λμ μν©μΈλ° "λͺ¨λ 컀λ°μ νμ₯μλͺ μ λΆμ¬μ£Όμ§ μμλ€λ©΄ νλ²μ μ΄λ»κ² μμ νμ§?" νλ κΆκΈμ¦μ΄ μ겨μ μκ² λ λ°©λ²μ΄λ€.
μλ§ μμΌλ‘λ μ»€λ° λ©μμ§λ₯Ό μμ ν λ μμ£Ό μ¬μ©ν κ² κ°λ€.
λ³Έλ‘
μ°μ λ΄κ° μμ±ν κΉ μ»€λ°μ΄ 무μμ΄ μλμ§, λͺ κ°κ° μλ μ§ νμΈν΄μΌ νλ€.
git log --oneline
μ΄λ κ² μ λ ₯νλ©΄ 컀λ°μ κ°―μμ μ΄λ€ 컀λ°μ νλμ§ κΈ°λ‘μ νμΈν μ μλ€.
κ°μ₯ μ΅κ·Όμ 컀λ°μ΄ μ΅μλ¨μ λνλμλ λ΄λ¦Όμ°¨μ νμμ΄λ€.
μ¬κΈ°μ λ§μ½ 0006384μ μ»€λ° λ©μμ§λ₯Ό μμ νκ³ μΆλ€λ©΄ μμμλΆν° κ°―μλ₯Ό μΈλ©΄ λλ€.
μ΅κ·Ό 컀λ°μμ 3λ²μ§Έμ μκΈ° λλ¬Έμ git rebase -i HEAD~3μ μ λ ₯νλ©΄ λλ€.
κ·ΈλΌ μλμ κ°μ νλ©΄μ΄ λμ¨λ€.
μ¬κΈ°μ pick λΆλΆμ μ»€λ° λ©μμ§λ₯Ό μμ νμ§ μκ³ κ³ μ ν΄λκ² λ€λ μλ―Έμ΄κ³ μμ νκ³ μΆμ μ»€λ° λ©μμ§λ pickμ μ§μ°κ³ editμ μ μ΄μ€λ€.
* μ¬κΈ°μ ν·κ°λ¦¬μ§ λ§μμΌ ν λΆλΆμ onelineκ³Ό λ°λλ‘ κ°μ₯ μ€λλ μ»€λ° λ©μμ§κ° μ΅μλ¨μ λ¨Όμ λ¬λ€.
μ΄μ editμΌλ‘ λ°κΎΌ μ»€λ° λ©μμ§μ κΈμλ₯Ό λ³κ²½νκ³ Ctrl + Xλ₯Ό λλ₯΄λ©΄ μλμ κ°μ λ©μμ§κ° λ¬λ€.
μ¬κΈ°μ μμ μ μνλ©΄ Yν€λ₯Ό λλ₯΄κ³ Enterλ₯Ό λλ₯΄κ³ λμ¨λ€.
κ·ΈλΌ λ°λ‘ μμ λλ κ²μ΄ μλλΌ μλμ κ°μ λ¬Έκ΅¬κ° λ¬λ€.
μ¬κΈ°μ git commit --amendλ₯Ό μ λ ₯ν΄μ£Όμ§ μμΌλ©΄ μμ λμ§ μμΌλ κΌ amendλ₯Ό μ λ ₯ν΄μΌ νλ€.
μ λ ₯νλ©΄ μλμ κ°μ μ°½μΌλ‘ λ€μ μ μνκ² λλ€.
μ°¨λ‘λλ‘ edit μ μ μλ 컀λ°μ μμ ν μ μλ€.
μ¬κΈ°μ λ€μ Ctrl + Xλ₯Ό λλ₯΄κ³ Yλ₯Ό μ λ ₯ν ν Enterλ₯Ό λλ₯΄λ©΄ λ€μ λ°μΌλ‘ λμ€λλ° μ΄λλ μμ μ΄ μλ£ λμ΄μλ€.
μ¬κΈ°μ git rebase --continueλ₯Ό μ λ ₯ν΄μ£Όλ©΄ μμ μ΄ μλ£λλ€!
κ²°λ‘
μ¬λ¬ κ°μ 컀λ°μ νλ²μ μμ νκ³ μΆμ λ λ§€μ° μ μ©ν κ² κ°λ€. μλ§ κΈ°λ₯μ΄ λ§μμ μ»€λ° λ©μμ§ μμ λΏλ§ μλλΌ μ½λλ μμ μ΄ κ°λ₯ν κ²μΌλ‘ μκ°λλ€! 컀λ°μ μ½λλ₯Ό μμ νκ³ μΆμλ νλ² λ μ¬μ©ν΄λ΄μΌ ν κ² κ°λ€
μ°μ λ€μ κΈ°λ₯ ꡬνμ ν΄μΌ νκΈ° λλ¬Έμ rebaseλ‘ μ½λλ₯Ό μμ νλ κ²μ λ€μμ μμλ΄μΌκ² λ€.