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
출저 : http://hochulshin.com/git-revert-changes/
'협업 > git' 카테고리의 다른 글
git stash 명령어 활용하기 (0) | 2020.05.06 |
---|---|
Git - pull request (0) | 2020.05.05 |
쓸데없는 폴더가 포함되었을 때 제거방법 (0) | 2020.04.30 |
[Gitlab] git push -u origin master permission denied (0) | 2020.04.28 |
git bash 터미널 계정 변경 (0) | 2020.04.27 |