개발
[Git] git reset vs revert
ash_
2023. 3. 28. 16:19
- reset : 원하는 시점으로 돌아간 뒤 이후 내역들을 지웁니다.
- revert : 되돌리기 원하는 시점의 커밋을 거꾸로 실행합니다.
reset
git reset --hard (돌아갈 커밋 해시)
돌아갈 커밋 해시 위치로 돌아간 후, 그 커밋 이후의 내용과 커밋들은 전부 삭제한다.
커밋 해시는 `git log` 를 통해 확인 가능
hard : 해당 커밋 이후의 내용과 커밋들을 모두 삭제하고, 변경사항도 모두 삭제.
mixed: 해당 커밋 이후의 커밋은 삭제하고, 변경된 내용은 staging 해놓음.
soft: 해당 커밋 이후의 커밋은 삭제하고, 변경된 내용은 working directory에 남아있음.
🚨reset 으로 날아간 파일 살리기
git reflog
reflog 는 프로젝트가 위치한 커밋이 바뀔 때마다 기록되는 내역을 보여주고, 이를 사용하여 reset하기 이전 시점으로 프로젝트를 복구할 수 있습니다.
revert
git revert (되돌릴 커밋 해시)
해당 커밋을 되돌리는 커밋이 하나 더 생긴다.
커밋하지 않고 되돌리려면
git revert --no-commit (되돌릴 커밋 해시)
옵션을 사용, 추가 수정사항이 생기면 더 수정하고 커밋하면 된다.