Git을 사용하다보면 수정한 내용을 되돌리고 싶을 경우가 간혹있다. GUI가 있는 Git 클라이언트의 경우엔 discard를 하면 되지만 command line interface에서는 어떻게 해야 할지 잘 모를때가 많다. 각 상황별로 수정 내역을 되돌리는 법을 알아보자.

1. git add 명령을 하기 이전(stage에 올리지 않은 경우)

1.1 repository 내 모든 수정 되돌리기

$ cd {repository_root_dir}
$ git checkout .

1.2 특정 폴더 아래의 모든 수정 되돌리기

$ git checkout {dir}

1.3 특정 파일의 수정 되돌리기

$ git checkout {file_name}

2. git add 명령으로 stage에 올린 경우

$ git reset

3. git commit을 한 경우

3.1 commit 내용을 없애고 이전 상태로 원복

master 브랜치의 마지막 커밋을 가리키던 HEAD를 그 이전으로 이동시켜서 commit 내용을 없앰

$ git reset --hard HEAD^

3.2 commit은 취소하고 commit 했던 내용은 남기고 unstaged 상태로 만들기

$ git reset HEAD^

3.3 commit은 취소하고 commit 했던 내용은 남기고 staged 상태로 만들기

$ git reset --soft HEAD^

4. 모든 untracked 파일들을 지우기

git clean -fdx

5. git push를 한 경우 remote repository도 이전으로 되돌리기

$ git reset HEAD^  #local repository에서 commit을 하나 되돌림
$ git commit -m "..."  #되돌린 것으로 commit
$ git push origin +master #remote repository를 강제로 revert


'GitLab' 카테고리의 다른 글

GitLab 공개키 등록하기  (0) 2017.11.02
SVN 저장소를 Git으로 옮기는 방법  (0) 2017.11.02
Git Bash로 SSH 공개키 발급하기  (0) 2017.11.02
Git 최초 설정  (0) 2017.11.02
git 초기 환경설정  (0) 2017.10.17
Posted by 모래반지빵냐빵냐
,