programing

Git에서 commit id를 기반으로 특정 커밋으로 되돌리시겠습니까?

subpage 2023. 4. 9. 21:29
반응형

Git에서 commit id를 기반으로 특정 커밋으로 되돌리시겠습니까?

와 함께git log지금까지의 커밋 리스트가 표시됩니다.

commit f5c5cac0033439c17ebf905d4391dc0705dbd5f1
Author: prosseek 
Date:   Fri Sep 3 14:36:59 2010 -0500

    Added and modified the files.

commit c14809fafb08b9e96ff2879999ba8c807d10fb07
Author: prosseek 
Date:   Tue Aug 31 08:59:32 2010 -0500

    Just simple test for core.editor.

... etc ...
  • 특정 커밋으로 되돌리려면 어떻게 해야 하나요?예를 들어, 로 돌아가려면 어떻게 해야 하나요?commit c14809fafb08b9e96ff2879999ba8c807d10fb07?

  • Git을 사용하여 특정 커밋으로 돌아갈 수 있는 다른/더 나은 방법이 있습니까?예를 들어, 각 커밋의 라벨을 붙여서 라벨과 함께 되돌려 받을 수 있습니까?

레포트를 그 상태로 되돌리시겠습니까, 아니면 지역 레포트를 그렇게 만들고 싶으십니까?

네가 만약reset --hard로컬 코드와 로컬 이력을 커밋 때와 동일하게 만듭니다.그러나 새로운 이력을 가진 다른 사람에게 이 정보를 전달하려면 다음과 같이 실패합니다.

git reset --hard c14809fa

그리고 만약 당신이reset --soft헤드는 원래 있던 곳으로 이동하지만 로컬 파일 등은 그대로 둡니다.

git reset --soft c14809fa

그럼 이 리셋으로 정확히 무엇을 할 건가요?

편집 -

리포트에 태그를 추가할 수 있습니다.태그로 돌아갑니다.하지만 태그는 sha1로 가는 지름길일 뿐입니다.

TAG1로 태그를 붙일 수 있습니다.그 후,git reset --soft c14809fa,git reset --soft TAG1, 또는git reset --soft c14809fafb08b9e96ff2879999ba8c807d10fb07모두가 같은 일을 할 것이다.

내 생각에 바욱의 대답은 어느 순간 틀렸다.

네가 한다면.

git reset --soft c14809fa

그러면 로컬 파일이 이전과 같이 변경되지만 이력 등은 남깁니다.똑같아요.

매뉴얼에 따르면 git-reset, git reset --soft...

는 인덱스 파일이나 작업 트리에 전혀 영향을 주지 않습니다(단, 헤드는 모든 모드와 마찬가지로 <commit>로 리셋됩니다).그러면 git 상태가 나타내는 것처럼 변경된 모든 파일이 "Changes to be committed"로 남습니다.

새로운 커밋을 브랜치로부터 「삭제」합니다.즉, 이전 코드를 확인한 후 이 브랜치의 최신 커밋으로 다시 쉽게 이동할 수 없습니다.따라서 bwawok에서 설명한 바와 같이 반대방향: 로컬 파일은 변경되지 않지만("git reset --soft" 전과 똑같이 표시됨) 이력은 수정됩니다(지정된 커밋 후에 브랜치가 잘립니다).

bwawok의 답변에 대한 명령어는 다음과 같습니다.

git checkout <commit>

이를 통해 이전 버전을 볼 수 있습니다.어제 내 코드가 어떻게 보였습니까?

(알겠습니다만, 이 답변에 코멘트를 붙여야 하는데 stackoverflow에서는 할 수 없습니다.내 평판은 너무 낮다.)

git reset c14809fafb08b9e96ff2879999ba8c807d10fb07★★★★★★★★★★★★★★★★★...

이 문제를 강제적으로 발생시키고 싶은 경우는, 다음의 조작을 실시합니다.

git reset --hard c14809fafb08b9e96ff2879999ba8c807d10fb07

체크인 시 git 클론이 어떻게 생겼는지 보여줍니다.

언급URL : https://stackoverflow.com/questions/3639115/reverting-to-a-specific-commit-based-on-commit-id-with-git

반응형