git 저장소를 특정 커밋으로 전환하는 방법


191

내 자식 저장소에서, 내 자식 로그에서 아래와 같이 5 개의 커밋을 만들었습니다.

commit 4f8b120cdafecc5144d7cdae472c36ec80315fdc
Author: Michael 
Date:   Fri Feb 4 15:26:38 2011 -0800

commit b688d46f55db1bc304f7f689a065331fc1715079
Author: Michael
Date:   Mon Jan 31 10:37:42 2011 -0800

commit b364f9dcec3b0d52666c4f03eb5f6efb7e1e7bda
Author: Michael
Date:   Wed Jan 26 13:33:17 2011 -0800

commit 4771e26619b9acba3f059b491c6c6d70115e696c
Author: Michael 
Date:   Wed Jan 26 11:16:51 2011 -0800

commit 6e559cb951b9bfa14243b925c1972a1bd2586d59
Author: Michael 
Date:   Fri Jan 21 11:42:27 2011 -0800

이전 4 개의 커밋을 지점에서 로컬로 롤백하려면 어떻게해야합니까? 즉, 최신 4 개의 커밋없이 분기를 만들 수 있습니까 (git 로그에서 해당 커밋의 SHA가 있다고 가정)?

답변:


233

로컬로 새 분기를 만들려면

  • 커밋 해시 (또는 그 일부)

    git checkout -b new_branch 6e559cb
    
  • 또는 HEAD에서 4 커밋으로 돌아가려면

    git checkout -b new_branch HEAD~4
    

새 분기가 로컬로 생성되면 동일한 이름의 원격에서이 변경 사항을 복제 할 수 있습니다. 변경 내용을 원격 분기로 푸시하는 방법


대한 마지막 세 개의 커밋을 폐기 , 참조 아래 Lunaryorn의 답변을 .


들어 (가) 새로운 지점을 만들지 않고 커밋 지정에 현재 브랜치 헤드를 이동 , 참조 아래 Arpiagar의 답변을 .


160

위의 모든 명령은 새 분기를 작성하고 최신 커밋은 명령에 지정된 커밋이지만 현재 분기 HEAD가 지정된 커밋으로 이동 하려는 경우 아래에 명령이 있습니다.

 git checkout <commit_hash>

그것은 분리 와 포인트 HEAD커밋 지정된 및 사용자가 단지 특정 커밋까지 분기의 상태를 확인하고자 할 때 새로운 지점을 만들 수 절약 할 수 있습니다.


그런 다음 최신 커밋으로 돌아가서 분리 된 HEAD를 수정하십시오.

힘내 분리 헤드를 수정?


1
이렇게하면 머리가 분리됩니다. 편리하지 않은.
IgorGanapolsky

<commit_hash>앞선 다른 지점에 있더라도 ?
Ciasto piekarz

링크 된 질문은 git checkout master특정 상황에 적용될 수있는 하나 또는 두 개의 에지 사례와 함께에 있습니다.
i336_ 2016 년

66

최신 네 가지 커밋을 버리고 싶다면 다음을 사용하십시오.

git reset --hard HEAD^^^^

또는 재설정하려는 커밋의 해시를 지정할 수 있습니다.

git reset --hard 6e559cb

4
이것은 분기 단계를 생략합니다. 그가 여기에 표시된 것을 정확하게 실행하면, 그 최고 커밋을 영구적으로 잃게됩니다.
Jimmy Cuadra

3
글쎄, 반드시 영구적 일 필요는 없습니다. 이전 헤드의 SHA를 가져 와서 git reflog다시 재설정 할 수 있습니다. 그러나 그것들을 버릴 것입니다.
Amber

1
커밋을 먼저 푸시 한 다음 재설정하면 풀로 다시 검색 할 수 있습니다.
Rick Smith

17

새로운 브랜치를 시작하고 싶은 커밋을 체크 아웃하고 새로운 브랜치를 생성하십시오.

git checkout -b newbranch 6e559cb95

0

이전 4 개의 커밋을 지점에서 로컬로 롤백하려면 어떻게해야합니까?

즉, 새 분기를 작성하지 않고 분리 된 상태가됩니다. 이를 수행하는 새로운 방법은 다음과 같습니다.

git switch --detach revison

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.