Computer Science/Git

5. Git reset, revert (간단히 알아봅시다)

ajdanddl 2019. 12. 31. 01:44
반응형

커밋을 취소하는 법에 대해 알아봅시다.

제일 최신 상태인 commit 5가 아닌 commit 3으로 되돌아가고 싶다면 어떻게 해야할까요?

즉, commit 5와 commit 4를 삭제하고 commit 3을 제일 최신 상태로 놔두고 싶은 경우 어떻게 해야할지 알아봅시다.

 

크게 2가지 방법이 있는데 바로 "reset""revert" 입니다.

 

commit 3의 고유값을 복사하고

git reset commit3고유값 --hard 명령어를 입력해줍시다.

그러고 다시 git log로 확인해보면 commit 3이 제일 최신 상태로 변경된 것을 볼 수 있습니다.

즉, 버전관리하고 있는 파일의 소스코드가 3번째 버전으로 되돌아간 것입니다. 

확인해봅시다.

 

현재 버전 관리 중인 f1.txt와 f2.txt의 내용이 source : 2로 되돌아간 것을 알 수 있습니다.

(버전 5에서의 소스코드 내용은 아마 f1.txt 파일의 경우 f1.txt : 5 였을겁니다.)

 

하지만 git에서는 웬만하면 어떠한 정보도 삭제하지 않습니다.

즉, 버전4, 버전 5에 대한 정보는 버려진 것이 아니라 단지 우리 눈에 지금 보이지 않는 것이기 때문에 이후에 복구가 가능합니다.

복구를 하기 위해서는 git의 원리에 대해 알아야 합니다.

 

나중에 원격 저장소를 배우면 협업을 할 수 있게 되는데 본인이 버전관리하고 있는 파일을 인터넷에다 공유를 할 수 있게 됩니다. 공유하고 나서는 절대로 reset을 해서는 안된다고 합니다. 절대 공유된 파일에 대해서는 reset 하면 안되고 컴퓨터에 남아있는 파일에 대해서만 reset 작업을 수행해줘야 합니다. 

 

다음으로 git revert의 경우 git reset과는 달리 커밋을 그냥 날리고 끝이 아니로 커밋을 취소하고 새로운 버전을 만들어내는 명령어 입니다.

 

git revert와 git reset의 추가적인 옵션에 대해서는 추후에 다뤄보도록 하겠습니다.

반응형