-
Push하기 전이면 reset을 사용할 수 있다.
수정하기 전 상태로 되돌린다.
$ git checkout . // 수정한 모든 파일을 수정하기 전으로 되돌린다. $ git checkout {folder name} // 수정한 특정 폴더를 수정하기 전으로 되돌린다. $ git checkout --{file name} // 수정한 특정 파일을 수정하기 전으로 되돌린다. $ git reset --hard HEAD^ // 수정한 모든 파일을 수정하기 전으로 되돌린다. $ git reset --hard HEAD^ {file name} // 수정한 특정 파일을 수정하기 전으로 되돌린다.
add하기 전 상태(수정한 후 상태)로 되돌린다.
$ git reset --mixed HEAD^ // add한 모든 파일을 add하기 전으로 되돌린다. $ git reset --mixed HEAD^ {file name} // add한 특정 파일을 add하기 전으로 되돌린다.
commit하기 전 상태(add 한 후 상태)으로 되돌린다.
$ git reset --soft HEAD^
현재 작업 트리, HEAD, 인덱스를 특정 버전때로 되돌린다.
$ git reset --hard {commit 번호}
완전 과거 상태로 되돌린때 사용 커밋, 작업 파일이 다 과거로 되돌아감
현재 작업 트리는 유지한 채로 HEAD, 인덱스를 특정 버전때로 되돌린다.
$ git reset --mixed {commit 번호}
현재 작업 파일은 유지하면서 특정 버전 부터 현재 버전까지의 커밋은 지우고 새로운 커밋은 남겨야할 때 사용
현재 작업 트리와 인덱스는 유지한 채로 HEAD를 특정 버전때로 되돌린다.
$ git reset --soft {commit 번호}
현재 작업 파일은 유지하면서 특정 버전 부터 현재 버전까지의 커밋은 지우고 새로운 커밋을 남기지 않아도 될 때 사용
※ 새로운 커밋을 남길 수 도 있음
reset 실행 전 상태로 되돌린다.
$ git reset --hard ORIG_HEAD
reset시 주의사항
로컬 저장소 커밋 히스토리가 원격 저장소 커밋 히스토리보다 뒤라면 push를 할 수 없다.
강제로 덮어써야하는 경우에는 git push -force를 사용한다.
'Git' 카테고리의 다른 글
git branch 관련 (0) 2020.12.02 git rebase 관련 (0) 2020.12.01 git revert (0) 2020.12.01 git checkout 관련 (0) 2020.12.01 다른 원격저장소로 복사 (0) 2020.12.01