본문 바로가기
개발 도구/Git

git revert로 커밋 여러개 동시에 취소하기

by ♥︎해이나♥︎ 2022. 12. 8.
반응형

커밋을 하나씩 취소할 수도 있지만 이어진 커밋 여러개를 동시에 취소할 수도 있다.

 

 

테스트를 위해서 아래와 같이 revert.txt 라는 파일을 만들고 여러가지 작업을 한 후에 각각 커밋을 해 두었다.

 

 

해당 파일을 생성하기만 한 Create revert.txt 커밋을 제외하고 (앗 오타가..) 나머지 Update revert.txt 부터 Edit revert.txt 까지 총 3개의 커밋을 취소해보도록 하겠다.

 

 

위의 붉은색 배경으로 표시된 파일을 지우려면 git revert 명령어를 입력하고 실행하면 된다.

 

git revert [취소하고 싶은 커밋의 이전 커밋아이디]..[취소하고 싶은 마지막 커밋 아이디]

 

커밋 아이디 두개를 '..' 으로 이어주는데, 여기서 주의할 점은 앞의 커밋 아이디는 삭제 커밋에 포함되지 않는다는 점이다. 취소하고 싶은 커밋의 한 단계 전 커밋아이디를 입력해주어야 한다. 그래서 나는 git revert c9bf..06bf 명령어를 실행시켰다.

 

 

명령어를 실행하면 화면이 바뀌는데, 커밋 순서대로 메세지를 다시 입력할 수 있다. 그대로 써도 상관없다. 나는 이 커밋이 revert된 것이라는 것을 기록으로 남겨두고 싶어서 메세지 수정 없이 그대로 사용하기로 했다. 차례대로 :wq 엔터키를 눌러 저장 후 종료했다.

 

파일을 열어보니 이후에 작성한 내용들이 모두 삭제되고, 취소된 커밋 이전 시점으로 돌아가 있는 것을 확인할 수 있었다.


그리고 공부를 하던 중에 실수가 있었는지 브랜치를 표시하는 영역에 계속 (main | REVERTING) 문구가 보여지는 현상이 있었다. 구글 검색을 통해 아래 링크를 찾아서 해결했다.

 

https://stackoverflow.com/questions/29765777/git-shows-masterreverting-in-command-bar-after-reverting

 

Git shows (master|REVERTING) in command bar after reverting

Git shows (master|REVERTING) in command bar after reverting my code. How can I get rid off that?

stackoverflow.com

 

선생님 없이 공부하는 초보이다보니 어떤 문제가 발생하면, 왜 그렇게 된 것인지 이유를 알 수 없어서 답답할 때가 많다. 그래도 코딩 관련된 궁금증은 인터넷을 검색하면 대부분 해결책을 찾을 수 있어 다행이라는 생각이 든다.

반응형

댓글