Git checkout - Git 저장소를 이전 커밋으로 되돌리려면 어떻게해야합니까?

Git reset / git / git-checkout / git-reset / git-revert

현재 상태에서 특정 커밋에서 만든 스냅 샷으로 되돌리려면 어떻게해야합니까?

$ git log
commit a867b4af366350be2e7c21b8de9cc6504678a61b`
Author: Me <me@me.com>
Date:   Thu Nov 4 18:59:41 2010 -0400

blah blah blah...

commit 25eee4caef46ae64aa08e8ab3f988bc917ee1ce4
Author: Me <me@me.com>
Date:   Thu Nov 4 05:13:39 2010 -0400

more blah blah blah...

commit 0766c053c0ea2035e90f504928f8df3c9363b8bd
Author: Me <me@me.com>
Date:   Thu Nov 4 00:55:06 2010 -0400

And yet more blah blah...

commit 0d1d7fc32e5a947fbd92ee598033d85bfc445a50
Author: Me <me@me.com>
Date:   Wed Nov 3 23:56:08 2010 -0400

Yep, more blah blah.

Paolo



Answer #1
git checkout <commit_id>
git checkout -b <new branch> <commit_id>
git checkout HEAD~X // x는 다시 돌아가는 커밋 수입니다.

이 시점에서 분기를 만들고이 시점부터 작업을 시작할 수 있습니다.

# 주어진 커밋을 체크 아웃합니다.
# 이렇게하면`분리 된 HEAD`가 생성되어`HEAD`가
#이 최신을 가리 키지 않으므로 지점을 확인해야합니다.
# 코드를 업데이트 할 수 있습니다.
git checkout <commit-id>

# 주어진 커밋에 포크 된 새 브랜치를 생성
git checkout -b <branch name>
git reflog
git checkout HEAD@{...}

머리를 원하는 커밋으로 "이동"하십시오.

# 이것은 모든 로컬 수정을 파괴합니다.
# 유지하고 싶은 미확정 작업이 있으면하지 마십시오.
git reset --hard 0d1d7fc32

# 또는 보관할 작업이있는 경우 :
git stash
git reset --hard 0d1d7fc32
git stash pop
# 이렇게하면 수정 사항이 저장되고 재설정 후 해당 패치가 다시 적용됩니다.
# 수정 한 내용을 병합하면 병합 충돌이 발생할 수 있습니다.
# 재설정 한 커밋 이후 변경되었습니다.