4단계를 어제에 이어 풀어볼 차례이다.
3. 커밋 갖고 놀기2
interactive rebase를 사용하면, 충돌이 일어날 수 있다. 그러니 cherry-pick을 사용해보자
우리의 목표이다.
시작 부분이다. main에서 newImage를 cherry-pick하고, 다시 main에서 newImage와 caption을 cherry-pick하면 되지 않을까 싶다.
(1) git checkout main : HEAD를 main으로 checkout
(2) git cherry-pick newImage : newImage를 복사하여 c1 아래로 둔다.
하지만, 여기서 main이 c2의 복사본으로 왔지만, c1의 자식으로 c2와 c3의 복사본이 와야하기 때문에 main이 다시 c1으로 이동해야 한다.
(3) git branch -f main c1 : c2'에 있던 main 브랜치를 c1으로 이동시킨다.
(4) git cherry-pick c2 c3 : c2와 c3의 복사본을 생성해 c1 자식으로 붙여넣는다.
성공!
4. Git 태그
특정 커밋을 브랜치로 참조하듯이 영구적인 이정표처럼 표시할 수 있는 것으로써, 커밋이 추가적으로 생성되어도 절대 움직이지 않는다.
다음 목표를 보자.
그리고 우리가 시작할 부분을 보자.
HEAD를 C2와 C1에 두어 각각 태그를 달거나, 직접 지정해주어 태그를 다는 것 같다.
(1) git tag v0 c1 : v0태그를 c1에 넣어주기
(2) git tag v1 c2 : v1 태그를 c2에 넣어주기
(3) git checkout c2 : HEAD를 C2로 옮기기
5. Git describe
현재의 tag나 branch 명을 알아내는 것이다.
(1) git describe c3
출력 : v1
(2) git describe c4
출력 :v1_1_gC4
(3) git describe c6
출력 : v1_2_gC6
(4) git describe main
출력 : v0_2_gC2
출력을 보니
속해있는 tag_태그의 대손_g커밋명
인 것 같다.
'Git' 카테고리의 다른 글
[Git]Git Interactive tutorial6 (0) | 2022.08.18 |
---|---|
[Git]Git Interactive tutorial4 (0) | 2022.08.16 |
[Git]Git Interactive tutorial3 (0) | 2022.08.12 |
[Git]Git Interactive tutorial2 (0) | 2022.08.11 |
[Git]Git Interactive tutorial (0) | 2022.08.10 |