준비 영역에 남아 있는 파일을 다시 커밋하면 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")
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.