커밋을 하나씩 취소할 수도 있지만 이어진 커밋 여러개를 동시에 취소할 수도 있다.
테스트를 위해서 아래와 같이 revert.txt 라는 파일을 만들고 여러가지 작업을 한 후에 각각 커밋을 해 두었다.
해당 파일을 생성하기만 한 Create revert.txt 커밋을 제외하고 (앗 오타가..) 나머지 Update revert.txt 부터 Edit revert.txt 까지 총 3개의 커밋을 취소해보도록 하겠다.
위의 붉은색 배경으로 표시된 파일을 지우려면 git revert 명령어를 입력하고 실행하면 된다.
git revert [취소하고 싶은 커밋의 이전 커밋아이디]..[취소하고 싶은 마지막 커밋 아이디]
커밋 아이디 두개를 '..' 으로 이어주는데, 여기서 주의할 점은 앞의 커밋 아이디는 삭제 커밋에 포함되지 않는다는 점이다. 취소하고 싶은 커밋의 한 단계 전 커밋아이디를 입력해주어야 한다. 그래서 나는 git revert c9bf..06bf 명령어를 실행시켰다.
명령어를 실행하면 화면이 바뀌는데, 커밋 순서대로 메세지를 다시 입력할 수 있다. 그대로 써도 상관없다. 나는 이 커밋이 revert된 것이라는 것을 기록으로 남겨두고 싶어서 메세지 수정 없이 그대로 사용하기로 했다. 차례대로 :wq 엔터키를 눌러 저장 후 종료했다.
파일을 열어보니 이후에 작성한 내용들이 모두 삭제되고, 취소된 커밋 이전 시점으로 돌아가 있는 것을 확인할 수 있었다.
그리고 공부를 하던 중에 실수가 있었는지 브랜치를 표시하는 영역에 계속 (main | 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
선생님 없이 공부하는 초보이다보니 어떤 문제가 발생하면, 왜 그렇게 된 것인지 이유를 알 수 없어서 답답할 때가 많다. 그래도 코딩 관련된 궁금증은 인터넷을 검색하면 대부분 해결책을 찾을 수 있어 다행이라는 생각이 든다.
'개발 도구 > Git' 카테고리의 다른 글
머지 기록 없이 깔끔한 커밋 히스토리 관리하기(git rebase) (0) | 2022.12.13 |
---|---|
git reset 되돌리고 싶을 때 커밋 리스트 확인하기(git reflog) (0) | 2022.12.10 |
깃허브(Remote Repository)에 올린 커밋 취소하기(git revert) (0) | 2022.12.04 |
누가 작업했는지 알고 싶을때(git blame, git show) (0) | 2022.12.01 |
Remote Repository 내용을 merge하지 않고 가져오기(git fetch) (0) | 2022.11.30 |
댓글