본문 바로가기

Git

[Git]Git Interactive tutorial5

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