티스토리 뷰
인터랙티브 리베이스
- reabse를 할 때 대화형(-i 옵션)으로 실행하는 것을 말한다
- rebase를 진행할 때 다양한 추가 기능을 제공한다
- 인터랙티브 리베이스로 실행하면 vim 같은 텍스트 편집기 파일이 열리는데 그곳에서 다양한 기능을 적용할 수 있다
- 이 글에서는 3가지 기능에 대해서만 알아보겠다
- 적용할 커밋들의 순서를 변경할 수 있다
- 원하지 않는 커밋은 제외시킬 수 있다
- 커밋을 스쿼시(squash)할 수 있다
0. 현재 브랜치 상태
현재 상태에서 공통적으로 아래와 같은 명령어를 사용해 본 후 각 기능에 대해서 알아보자
$git rebase -i HEAD~3
1. 적용할 커밋들의 순서를 변경할 수 있다
위와 같은 텍스트 편집기가 열리는데 여기에서 커밋들의 순서를 변경한 후 :wq로 편집기를 종료하면 정한 순서대로 리베이스가 진행이 된다
위처럼 순서가 1,2,3으로 되어있던 것을 1,3,2로 변경해서 커밋들의 순서를 변경할 수 있다.
2. 원하지 않는 커밋은 제외시킬 수 있다
마찬가지로 제외하고 싶은 커밋에 대해서 앞에 pick이아 아닌 drop을 적어주면 해당 커밋을 제외하고 리베이스 할 수 있다.
위와 같이 하면 2에 대한 커밋 내용은 제외하고 1,3에 대해서만 리베이스를 한다
3. 커밋을 스쿼시(squash)할 수 있다
스쿼시는 커밋을 합치는 명령어인데 인터랙티브 리베이스에서 스쿼시를 사용하면 이전 커밋과 합쳐진다
위처럼 스쿼시를 합치면 기존 2,3에 대한 내용이 1에 합쳐져서 3개였던 커밋이 1개로 되고 이때 커밋 메시지를 작성하라는 추가적인 텍스트 편집기가 열린다.
목표
goal에 나타난 순서대로 만들기 위해 인터렉티브 리베이스를 사용해보자.
$git rebase -i HEAD~4
#위의 명령어 실행 후 C2는 제외하고 C4와 C5의 위를 바꾼다
'Git' 카테고리의 다른 글
[종합선물세트] 2: 커밋들 갖고 놀기 (0) | 2023.11.18 |
---|---|
[종합선물세트] 1: 딱 한 개의 커밋만 가져오기 (1) | 2023.11.18 |
[코드 이리저리 옮기기] 1: Cherry-pick 소개 (0) | 2023.11.04 |
[다음 단계로] 4: Git에서 작업 되돌리기 (1) | 2023.11.03 |
[다음 단계로] 3: 상대 참조 #2 (~) (0) | 2023.10.28 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크