3단계를 풀어볼 차례이다!
1. Cherry - Pick
git cherry-pick <Commit1> <Commit2> <...> 와 같이 작성하며 HEAD의 아래의 모든 커밋들을 복사하는 것이다.
현재 상태가 이렇다면, C2와 C4를 복사하여 HEAD(main) 아래로 넣고싶을 경우 git cherry-pick c2 c4 명령어를 사용하면.
이런 결과가 출력된다. 아래는 목표이다.
목표를 보면 순서대로 bugFix, size, another 브랜치를 복사하여 아래에 넣는 것 같다. 시도해보자.
(1) git cherry-pick bugFix : bugFix를 복사하여 main아래로 복사붙여넣기 한다.
(2) git cherry-pick c4 : c4를 복사하여 main아래로 복붙한다. side같은 이름이 아닌 c4로 불러올 수 있다.
(3) git cherry-pick c7 : c7을 복사하여 main아래로 복붙한다.
근데 한번에 하는 방법이 없을까? 한번에 복사를 원하는 노드들을 가져오도록 한줄에 적어보았다
(1) git cherry-pick bugFix c4 another
바로 출력되었다!!
2. Interactive Rebase
원하는 커밋명을 알 경우 cherry-pick을 사용한다. 하지만, 원하는 커밋을 모를 경우에는 git에서 무엇을 사용할까?
바로 Interactive Rebase이다.
git rebase -i와 같으며, rebase가 목적지가 되는 곳 아래에 복사될 커밋들을 보여주는 UI를 보여주고, 각 커밋들의 해시와 메시지까지 출력한다.
UI 내에서는 아래의 기능을 한다.
- 적용할 커밋들의 순서 변경 가능(마우스 드래그 앤 드롭 가능)
- 원하지 않는 커밋 제거 가능
- 커밋을 합칠 수 있음
직접 실습을 할 수 있기에 우선 목표를 보자.
Interactive Rebase를 사용해 이렇게 만들면 된다고 한다. UI로 직접 만들 수 있으니 굉장히 편리하게 만들 수 있을 것 같다.
(1) git rebase -i overHere : interactive rebase를 사용하여 GUI로 원하는 순서로 커밋을 복사할 수 있다!
(2) Drag and Drop을 통한 커밋 순서 변경 / Omit 버튼을 클릭해 비활성화
(3) confirm 버튼 클릭
'Git' 카테고리의 다른 글
[Git]Git Interactive tutorial6 (0) | 2022.08.18 |
---|---|
[Git]Git Interactive tutorial5 (0) | 2022.08.17 |
[Git]Git Interactive tutorial4 (0) | 2022.08.16 |
[Git]Git Interactive tutorial2 (0) | 2022.08.11 |
[Git]Git Interactive tutorial (0) | 2022.08.10 |