power-girl0-0

[GIT] Git Rebase 명령을 이용해 특정한 커밋 수정/삭제 하기 본문

개발

[GIT] Git Rebase 명령을 이용해 특정한 커밋 수정/삭제 하기

power-girl0-0 2021. 2. 17. 22:09
728x90

 

해당 게시물은 나동빈 님의 'Git으로 시작하는 협업 및 오픈소스 프로젝트'강의를 바탕으로 작성된 것입니다.

스스로 공부한 것을 정리하고 복습하기 위한 목적으로 작성하였습니다.


깃(Git)의 rebase 명령은 커밋 내역을 수정하고 삭제하고자 할 때 사용할 수 있다.

아래 실습을 통해 알아보자.


먼저 실습을 위해, 하나의 깃 프로젝트를 생성한다.


하나의 텍스트 파일을 추가한 뒤에 commit해준다.


이후에 텍스트 파일에 내용을 작성한 뒤에 commit한다.


다시 해당 텍스트 파일을 삭제한 뒤에 다시 commit 한다.


이번에도 새로운 텍스트 파일을 생성한 뒤에 commit 한다.


이제 git log를 확인해보면, 아래와 같이 총 4번의 commit이 이루어져 있는 것을 확인할 수 있다.

 

해당 실습에서는 중간에 있는 [Delete test.txt] 의 commit 메시지를 수정해 보겠다.


 수정 

커밋 메시지를 수정할 때 git rebase 명령어를 사용한다.

 

-i 옵션을 붙이면 상호작용(Interactive) 모드로 에디터가 열리게 된다.

아래 명령어는 HEAD를 기준으로 3개까지의 커밋을 확인하는 명령어이다.

git rebase -i HEAD~3

그러면 아래와 같이 커밋 내역이 차례대로 출력된다.

이제 여기에서 수정하고자 하는 커밋에 대한 내용을 에디터에 적는 방식이다.


커밋 메시지를 바꾸고 싶을 때는 reword 키워드를 사용하면 된다.

 

[Delete test.txt] 커밋의 메시지를 수정하도록 하겠다.


그러면 다음과 같이 새로운 에디터가 또 열리게 되고, 여기서 커밋 메시지를 바꾸면 된다.


결과적으로 다시 로그(Log)를 확인했을 때 아래와 같이 커밋 메시지가 변경된 것을 확인할 수 있다.


만약 특정 commit만 지정하고 싶다면, 아래와 같이 명령어를 작성하면 된다.

   git rebase -i 9eef0e17b0f7e0a050c682603339716fce84071d

 삭제 

특정 커밋 자체를 삭제하고 싶을 때도 마찬가지로 git rebase 명령어를 이용하면 된다.

다만, 다른 사람과 함께 작업하는 경우 커밋 자체를 삭제하는 것은 충돌이 발생할 수 있기 때문에 권장하지 않는다.


커밋 자체를 삭제하고 싶을 때는 drop 키워드를 이용하여 삭제해주면 된다.

결과적으로 삭제 이후에는 해당 커밋 내역이 아예 증발하게 된다.

 

 

 

728x90
Comments