커밋 타임라인의 순서를 마음대로 재단할 수 있도록 해주는 명령어들!
cherry-pick은
topic branch의 특정 commit의 변경사항만
가져올 수 있는 명령어이다..!
예를들어서, master branch에서 t1을 cherrypick 한다는것은, t1의 snapshot을 그대로 가져오겠다는것이 아니라, t1의 변경된 부분만을 master branch로 가져와서 새로운 commit을 만들겠다는 의미이다.
Rebase
base가 되는 커밋을 변경하겠다!
!주의 옮길 commit이 remote에 배포되기 전에만 실행합시다..!
rebase에서 base는 뭐야아?
--> 공통인 조상이 base인것! 즉 아래의 이미지에서는 C가 base이다!
master branch에서 rebase T2 하게되면 BASE commit이 C에서 T2로 변경되는것이다!
예를들어,
master branch의 base가되는 commit을 C에서 T2로 변경해보자!
1) git checkout master // 옮겨질 commit이 위치하는 branch로 checkout하자.
2) git rebase topic2 // base를 옮길게!
rebase
M1의 base를
c에서 t2로 바꿀때
일어나는 변화
M1과 T1의 working copy를 합쳐서 새로운 M1 commit을 만들어낸다.
상단의 m1과 하단의 m1은 변경사항은 같지만. working copy는 다르게 된다. 왜냐 T1과 합쳐졌으니까...
또한 m2도 마찬가지로 t2과 합쳐지면서 새로운 M2 commit을 만들어낸다.
merge한 결과와 rebase 한 결과는 같다는것을 기억하자!
cherry-pick
충돌의 원인과
해결
https://opentutorials.org/module/4015/24445
'Today I learned' 카테고리의 다른 글
재사용 가능한 디자인 패턴 기반 코딩기술 강의 (2) (0) | 2021.07.31 |
---|---|
언니가 친절하게 알려주는 문제를 해결하는 흐름.(with js로 fadeIn 구현) (2) | 2021.07.09 |
2021 06 01 git린이의 모험 - 충돌이 발생하는 이유 (0) | 2021.06.01 |
2021 05 31 - git린이의 모험 reset & revert (0) | 2021.05.31 |
2021 05 31 - git린이의 모험 pull request (0) | 2021.05.31 |
댓글