Cherry-pick

특정한 커밋을 다른 브랜치에 붙이고 싶을 때 사용

Untitled

🤔 위 상태에서 m2에 t2 커밋때 생긴 변화만을 적용하고 싶다!

🤓 git checkout master; git cherry-pick 235b762

conflict

Untitled

🤔 72d에 생긴 변경사항을 master에 적용하고 싶다!

🤓 72d 이전 커밋을 base로, 72dmaster를 양쪽 side로 해서 3-way merge

t2와 m2 충돌 → mt2로 수정해서 새로운 버전이 생성됨

이때 merge tool 쓰면 알아서 add 해줌, 안쓰면 직접 add 해주기

git cherry-pick --continue

커밋메세지 작성

Rebase

Untitled

🤔 문제상황

위 상황에서 A → B → C → T1 → T2 → M1 → M2 이렇게 선형적으로 만들고 싶다!

🤓 해결방안

rebase : M1baset2로 바꾸는 걸 의미

Untitled

git checkout master; git rebase topic

→ master의 부모를 topic으로 바꾼다

과정

m1t3를 합쳐서 새로운 m1 생성