Git 로컬 리포지토리의 역사 재설정

목적


  • "지금 커밋 한 최신 커밋을 취소하고 싶다!"라는 때의 방법을 정리한다

  • 전제 정보



  • 필자가 확인한 환경을 간단히 정리
  • 모든 디렉토리에 git_test 디렉토리를 만들고 git_test 디렉토리로 이동하여 $ git init 명령을 실행했습니다.

  • 다음 명령을 실행하여 첫 번째 커밋을 실행합니다.
    $ git commit -m 'first commit' --allow-empty
    

  • 아래 명령을 실행하여 git_test 디렉토리 바로 아래에 텍스트 파일을 만듭니다.
    $ echo 'aaa' > test.txt
    

  • 다음 명령을 실행하여 추가한 텍스트 파일을 커밋합니다.
    $ git add test.txt
    $ git commit -m 'テキストファイルの追加'
    


  • 로컬의 최신 커밋이 커밋 메시지 「텍스트 파일의 추가」의 커밋이라고 한다.


  • 최신 커밋을 하지 않았다고 해서 커밋 메세지 「first commit」의 커밋까지 상태를 되돌리고 싶다.

  • 방법



  • 로컬 리포지토리에서 다음 명령을 실행하여 커밋 로그를 출력합니다.
    $ git log
    

  • 표시된 로그에서 해당 상태로 돌아가려는 커밋의 커밋 ID를 복사합니다. (이번에는 커밋 메시지가 "first commit"의 커밋까지 되돌리고 싶으므로 아래를 복사한다.)



  • 로컬 리포지토리에서 다음 명령을 실행하여 최신 커밋을 갖지 않기로 결정하고 ID로 지정된 커밋까지 상태를 반환합니다.
    $ git reset 先程コピーしたコミットID
    
  • test.txt를 등록한 커밋이 없어져 text.txt는 존재하지만 git관리시키기 전의 상태가 된다.
  • 좋은 웹페이지 즐겨찾기