Git,  Programming

[Git] Push하지 않은 Commit 되돌리기

1. Commit 되돌리기

$ git reset [Option]

바로 이전 버전으로 되돌리기

$ git reset [Option] HEAD~1
옵션설명
commit이 취소되고, 해당 commit의 변경사항들이 unstaging 상태로 돌아간다. 여기서 git add 를 하고 커밋을 하게 되면 다시 현재상태로 되돌아 온다.
–softcommit이 취소되고, 해당 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

  1. 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
  2. http://hochulshin.com/git-revert-changes/

Leave a Reply

Your email address will not be published. Required fields are marked *