오늘은 개발하다가 잘못된 소스를 올렸을때 복구 하는 방법을 알아보겠습니다.
git revert / git reset
이 두 가지 명령어입니다. 둘 다 원격 저장소에 push하기 전에 사용 가능한 방법들입니다. 만약 푸시를 했다면 수정해서 다시 push해야 합니다.
그리고 이 두가지 방법중에서 git reset은 다른 개발자들과 충돌이 발생할수 있기때문에 혼자 하는 개인 프로젝트가 아니라면 사용 안하는걸 추천합니다.
git revert
먼저 feature/cmd-2으로 이동한 후에 커밋을 하나 해놓겠습니다.
9dbc4b3 edit e file 이 커밋이 잘못되었습니다. 어떻게 지울수 있을까요?
git revert 9dbc4b3
시간을 되돌리고 싶은 commit-id를 입력합니다. 실행하면 commit message를 작성하는 창이 나오는데 입력하고 :wq를 입력해서 저장하시면 됩니다.
위의 명령어를 실행하면 9dbc4b3 커밋이 적용이 안된 상태로 소스가 변경됩니다.
git reset
e 파일을 삭제한후에 커밋을 한 상태로 시작하겠습니다.
git reset --hard 0f8659e
e 파일이 생기면서 삭제 커밋이 지워진다.
git reset --soft 0f8659e
e 파일이 생기면서 stagging영역에 e 파일이 있다
git reset --mixed 0f8659e
e 파일이 생기면서 unstagging영역에 e 파일이 있다
개인적으로는 revert만 사용하는게 좋을거 같습니다. reset을 사용하면 다른 개발자들에게 소스 다시 받으라고 알려줘야하는데 번거롭습니다.