[Git] Push하지 않은 Commit 되돌리기
1. Commit 되돌리기
$ git reset [Option]
바로 이전 버전으로 되돌리기
$ git reset [Option] HEAD~1
옵션 | 설명 |
commit이 취소되고, 해당 commit의 변경사항들이 unstaging 상태로 돌아간다. 여기서 git add 를 하고 커밋을 하게 되면 다시 현재상태로 되돌아 온다. | |
–soft | commit이 취소되고, 해당 commit의 변경사항들이 staging상태로 돌아온다. ( git add 를 실행한 상태) |
–hard | 변경사항을 보존하지 않고 모두 지워버리는 것으로 –hard 옵션을 사용할 땐 각별히 유의해야 한다. |
Commit ID를 이용해 되돌리기
위에 command에서 HEAD~1 대신 commit ID만 입력해주면 된다.
$ git reset [Option] [Commit ID]
2. Commit하지 않은 파일 되돌리기
Commit을 하지 않은 파일을 되돌리고 싶을 때가 있다. 이런 경우 status를 확인하면 다음과 같이 나온다.
$ git status # On branch master # Changed but not updated: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: a.sv # modified: b.sv # no changes added to commit (use "git add" and/or "git commit -a")
Git 전체 되돌리기
$ git checkout .
특정 디렉토리 또는 파일
$ git checkout [directory] $ git checkout [file]
Reference
- https://medium.com/@kwoncharles/git-%EC%9D%B4%EC%A0%84-commit%EC%9C%BC%EB%A1%9C-%EB%8F%8C%EC%95%84%EA%B0%80%EA%B8%B0-cf6caed43ed5
- http://hochulshin.com/git-revert-changes/