본문 바로가기

Git, Version control/Github

[github] git revert를 이용해 커밋되돌리기

반응형

git을 관리하다보면 잘못된 코드를 commit해서 고치고 싶을 수 도 있고, 나중에 지나고 보니 버전을 예전버전으로 되돌려서 다시 작업을 시작해야하는 경우도 있다. 이럴 때 필요한 명령어는 git reset과 git revert가 있다. 

 

그러나 git reset은 커밋한 내용을 아예 삭제시켜버리기 때문에 되돌아올 수 없는 강을 건너는 것이다. 따라서 원격저장소로의 git reset은 허용하지 않고 있으며 이 명령어는 굳이 추천하고 싶지는 않다.

 

따라서 그럼 남은 명령어는 git revert !

이 명령어는 정확히 말하자면 과거로 되돌아가는것이 아니라, "commit한 내용을 취소하는 것" 이다. 또한 내가 이 커밋을 취소했다는 이력이 남고, git revert를 사용하기 전 코드기록도 남기때문에 안전하다. 이제 어떻게 사용하는지 살펴보자.

 

$ git log --oneline -n 3
5cd6df2 (HEAD -> v2l-meshnet) mesh vis 작업중. 일단 저장함.
3ee0033 vis-log.py 수정 : pkl파일 저장, 불러오기 코드 커밋. 이제 local에서 학습한 모델과 바로 비교 가능.
a7a66de only-v2l-meshnet 코드 커밋. baseline 버전.

 

 

이 때, 마지막으로 커밋한 내용인 5cd6df2을 취소해서 3ee0033으로 되돌아 가고 싶다면 다음의 명령어를 사용한다.

$ git revert --no-edit 5cd6df2
$ git log --oneline -n 3
4829e29 (HEAD -> v2l-meshnet) Revert "mesh vis 작업중. 일단 저장함."
5cd6df2 mesh vis 작업중. 일단 저장함.
3ee0033 vis-log.py 수정 : pkl파일 저장, 불러오기 코드 커밋. 이제 local에서 학습한 모델과 바로 비교 가능.

 

여기서 revert 의 옵션으로 --no-edit을 주지 않으면 세부 조정할 수 있는 화면으로 넘어가는데 귀찮으니 --no-edit으로 끝내도록 하자..

반응형