코드를 짜다보면 실수는 분명히 발생할 것이다
하지만 그 실수를 뒤늦게 알아차린다면
과거의 특정시점으로 어떻게 되돌아 갈 수 있는 지 알아볼 것이다
git restore
코드를 짜다가 문제가 되는 부분이 생겨서 취소해야하는데
ctrl+z하기에는 양이 너무 많거나 컴퓨터를 껐다 켜서 ctrl+z가 안먹힌다면
git restore 파일명
이러면 그 파일의 가장 최근 commit된 상태로 되돌릴 수 있다
만약 파일의 특정 커밋 시점으로 되돌아가고 싶다면
git restore --source 커밋아이디 파일명
이렇게 해주면 된다
번외로 특정 파일의 statging 상태를 취소하고 싶다면
git restore --staged 파일명
이렇게 해주면 된다
git revert
만약 코드를 짜다가 이전의 특정 commit이 문제가돼서 그 부분만 없애고 싶다면
git revert 커밋아이디
이러면 그 커밋아이디에서 일어난 일을 없애준다
사실 없애준다기보다는 그 commit 내용을 취소해준 commit을 생성하는것이다
git revert 커밋아이디1 커밋아이디2
이런식으로 여러개의 commit을 취소시킬 수 있다
만약 가장 최근의 commit을 revert하고 싶으면
git revert HEAD
이렇게 해주면 된다
git reset
만약 코드가 구제불능상태고 더이상 손을 쓸 수가 없는 상태가 된다면
시간을 과거로 되돌려야할 것이다
git reset --hard 커밋아이디
이러면 커밋아이디 시점으로 작업폴더,코드, 내용 등 모든 것이 되돌아간다
로컬 내용들도 완전소거 된다
참고로 git add되지 않은 untracked 파일은 지워지지 않는다
reset의 옵션으로
--soft : 그 commit 시점 이후의 로컬(repository)은 그대로지만 파일의 상태를 staging area로 바꾼다
--mixed : 그 commit 시점 이후의 로컬(repository)은 그대로지만 파일의 상태를 unstaged로 바꾼다
강의내용을 바탕으로 공부 후 정리했습니다
오늘은 git에서 되돌리기에 관한 명령어들을 공부했는데
되돌리는 것에도 여러 옵션들이 있고
다양한 방식으로 작용한다는 것에 신기했고
굉장히 체계적으로 이루어져있다고 생각했다
'git & github' 카테고리의 다른 글
| [git & github] git이랑 친해지기 ④ (git flow, Trunk-based 전략) (0) | 2025.10.08 |
|---|---|
| [git & github] github랑 친해지기 (0) | 2025.10.07 |
| [git & github] git이랑 친해지기 ② (git branch, git merge) (0) | 2025.10.05 |
| [git & github] git이랑 친해지기 ① (git add, git commit, git diff) (0) | 2025.10.04 |
