programing

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

newstyles 2023. 5. 29. 09:56

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

Git 저장소에서 Git 로그의 아래와 같이 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개의 커밋 없이 분기를 생성하려면 어떻게 해야 합니까(비트 로그에서 해당 커밋의 SHA가 있다고 가정)?

새 분기(로컬)를 작성하는 방법

  • 커밋 해시(또는 일부) 포함

    git checkout -b new_branch 6e559cb
    
  • 또는 HEAD의 커밋 4개를 되돌리는 것.

    git checkout -b new_branch HEAD~4
    

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


마지막 3개의 커밋을 삭제하려면 아래 루나리오른의 답변을 참조하십시오.


분기를 만들지 않고 현재 분기 HEAD를 지정된 커밋으로 이동하려면 아래 Arpiagar의 답변을 참조하십시오.

위의 모든 명령어는 새 분기를 생성하고 명령어에 지정된 최신 커밋을 사용합니다. 그러나 현재 분기를 원할 경우HEAD지정된 커밋으로 이동하려면 다음 명령을 사용합니다.

 git checkout <commit_hash>

그것은 분리하고 그것을 가리킵니다.HEAD지정된 커밋을 수행하고 사용자가 분기 상태를 보려는 경우 새 분기를 만드는 것부터 해당 특정 커밋까지 저장합니다.


그런 다음 최신 커밋으로 돌아가서 분리된 HEAD를 수정할 수 있습니다.

Git 분리된 머리를 고친다구요?

최근 4개의 커밋을 삭제하려면 다음을 사용합니다.

git reset --hard HEAD^^^^

또는 재설정할 커밋의 해시를 다음으로 지정할 수 있습니다.

git reset --hard 6e559cb

새 지점을 시작하려는 커밋을 확인하고 새 지점을 만듭니다.

git checkout -b newbranch 6e559cb95

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

즉, 새 분기를 만들지 않고 분리된 상태로 전환됩니다.새로운 방법은 다음과 같습니다.

git switch --detach revison

git switch 명령을 사용하면 다음 중 하나를 수행할 수 있습니다.

  • git switch -c <new-branch> <commit>라는 새 분기를 만듭니다.<new-branch>에서 시작하여<commit>
  • git switch --detach <commit>검사 및 폐기 가능한 실험에 대한 커밋으로 전환합니다.자세한 내용은 분리 헤드를 참조하십시오.

언급URL : https://stackoverflow.com/questions/4940054/how-can-i-switch-my-git-repository-to-a-particular-commit