commit을 변경하는 조작
git reset: 과거 상태로 복원
저장소의 HEAD, 스테이지, 현재의 working tree를 지정한 상태까지 복원하려면 git reset --hard
명령어를 사용한다. 이 명령어에 복원하고 싶은 지점의 해시를 입력하면, 그때 상태로 온전하게 복원된다.
$ git reset --hard 630a4aa3150a6061a655ed0a910a8a810f3a1331
HEAD is now at 630a4aa add index
git reflog: 저장소에 수행된 모든 commit 로그 확인
git log
명령어를 상용하면 현재 브랜치의 로그만 확인할 수 있다. 반면 git reflog
라는 명령어를 사용하면 현재 저장소에서 수행된 모든 commit 로그를 확인할 수 있다. 따라서 특정 commit 시점의 해시를 찾을 때는 git reflog
명령어를 사용하는 것이 편리하다.
$ git reflog
02cfdff HEAD@{0}: merge fix-B: Merge made by the 'recursive' strategy.
899bb27 HEAD@{1}: checkout: moving from fix-B to feature-A
b85ec4b HEAD@{2}: commit: Fix B
c4d11f9 HEAD@{3}: merge feature-A: Merge made by the 'recursive' strategy
899bb27 HEAD@{4}: commit: add feature-A
9f593f5 HEAD@{5}: checkout: moving from master to feature-A
630a4aa HEAD@{6}: commit: add index
6133cef HEAD@{7}: commit (initial): First commit
명령어를 입력하면 commit
, checkout
, reset
, merge
등의 Git 명령어를 실행한 변경 로그가 나온다.
과거 상태로 복원할 때는 이렇게 git reset --hard
명령어를 사용하여 해시를 입력하면, 그때 상태로 복원된다.
$ git reset --hard 899bb27
HEAD is now at 899bb27 add feature-A