더북(TheBook)

준비 영역에 남아 있는 파일을 다시 커밋하면 git reset 명령 전과 비교해서 코드 변경은 없지만 대신 커밋 목록이 정리됩니다.

administrator@vmgate:~/gittest$ git commit -m 'Finish editing'
administrator@vmgate:~/gittest$ git log --oneline
f2fff84 (HEAD -> master) Finish editing
fa7301f Create 2019AD.txt
5aba677 Edit failure.txt
bc8d4f5 Create failure.txt

이번에는 옵션 없이 git reset 명령을 실행해 봅시다.

administrator@vmgate:~/gittest$ git reset fa7301f
Unstaged changes after reset:
M       2019AD.txt
M       failure.txt

지정한 커밋으로 되돌리고 이후 작업 이력이 사라지는 것은 마찬가지입니다. --soft 옵션을 붙인 결과와 차이는 변경된 파일이 준비 영역에 올라와 있지 않다는 점입니다. 이 상태에서 파일 내용을 다시 수정하여 작업을 이어 나갈 수 있습니다.

administrator@vmgate:~/gittest$ git log --oneline
fa7301f (HEAD -> master) Create 2019AD.txt
5aba677 Edit failure.txt
bc8d4f5 Create failure.txt
administrator@vmgate:~/gittest$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   2019AD.txt
        modified:   failure.txt

no changes added to commit (use "git add" and/or "git commit -a")
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.