이전 시간에 git reset에 대해 학습했었죠. git reset <커밋 해시>는 해당 해시로 버전을 이동하면서 해당 버전 이후에 만들어진 버전들은 모두 삭제한다는 점이 가장 큰 특징이었는데요. 추가로 --hard 옵션을 추가해야 Working Tree에 있는 파일들까지 해당 커밋 버전에 맞게 변경된다는 점을 꼭 기억하셔야 됩니다. 이번 시간에는 커밋 정보를 삭제하지 않고 이전 버전으로 돌아가는 git revert 명령어에 대해 알아보겠습니다.
1. git revert
git revert 명령어는 취소하려는 커밋 해시를 지정해주고 해당 커밋 해시를 취소하게 됩니다. git reset 뒤에 지정하는 커밋 해시로 돌아가는 것과는 다르죠. git revert는 취소하려는 커밋 해시를 지정하면 해당 커밋 해시를 취소하였다는 커밋을 새롭게 만들어 줍니다.(취소한 버전을 새롭게 만든다는 게 git revert의 커밋 취소 원리입니다. ) 쉽게 말해 취소한 이력을 버전을 만들어 기록하는 것이죠.
그럼 이제부터 git revert 사용 방법에 대해 예시를 통해 알려 드리도록 하겠습니다.
먼저 git log를 통해 현재 커밋들을 확인합니다.
$ git log --oneline --graph
그리고, 취소하려는 커밋을 확인합니다. (저는 a 커밋을 취소하겠습니다.)
$ git revert f2e779b
그러면 중간에 아래와 같이 해당 커밋을 취소하며 변경된 사항과 그 내용을 담은 커밋을 생성하게 됩니다. 해당 내용들을 확인하고 이상이 없으면 ":"를 누르고 "wq"를 통해 저장해주면 해당 커밋을 취소한 새로운 커밋이 생성되게 됩니다.
남들과 협업을 하게 될 때 git을 사용하게 되는 경우가 있는데 만약 취소나 변경사항이 생길 경우 git reset을 사용하는 것보다 git revert를 사용하는 것이 훨씬 안정적이므로 꼭 까먹지 않았으면 좋겠습니다.
*Reference
- "지옥에서 온 문서 관리자 깃&깃허브 입문" 이지스버블리싱 - 이고요, 고경희 지음
-
-
부족한 글이지만 읽어주셔서 감사합니다.
'프로그래밍 > GIT' 카테고리의 다른 글
(3-4) git merge란?(어떤 branch가 남고 어떤 branch가 없어지지?) (0) | 2024.05.16 |
---|---|
(2-1) git branch란? (0) | 2022.11.08 |
(1-7) git 버전관리 - 이전 버전으로 돌아가기 git reset (0) | 2022.10.24 |
(1-6) git 버전관리 - git의 원리(git의 파일 상태 ) (1) | 2022.10.05 |
(1-5) git 버전관리 - git의 원리(git의 구조) (0) | 2022.10.04 |