IT

Git을 사용하여 커밋 ID를 기반으로 특정 커밋으로 되 돌리시겠습니까?

lottoking 2020. 3. 20. 08:32
반응형

Git을 사용하여 커밋 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을 사용하여 특정 커밋으로 돌아갈 수있는 다른 방법이 있습니까? 예를 들어, 각 커밋의 레이블을 넣어 레이블로 다시 가져올 수 있습니까?


레포를 해당 상태로 롤백 하시겠습니까? 아니면 현지 레포가 그렇게 보이기를 원하십니까?

당신이 할 경우

git reset --hard c14809fa

지역 코드와 지역 기록을 커밋과 동일하게 만듭니다. 그러나 새로운 역사를 가진 다른 사람에게 이것을 적용하고 싶다면 실패 할 것입니다.

당신이 할 경우

git reset --soft c14809fa

HEAD를 원래 위치로 옮기지 만 로컬 파일 등은 그대로 둡니다.

이 재설정으로 정확히 무엇을 하시겠습니까?

편집하다 -

리포지토리에 "태그"를 추가 한 다음 다시 태그로 이동할 수 있습니다. 그러나 태그는 실제로 sha1에 대한 바로 가기입니다.

그런 다음 .. TAG1으로이 태그를 할 수있는 git reset --soft c14809fa, git reset --soft TAG1또는 git reset --soft c14809fafb08b9e96ff2879999ba8c807d10fb07모두 같은 일을 할 것입니다.


bwawok의 대답은 어느 시점에서 틀렸다고 생각합니다.

당신이 할 경우

git reset --soft c14809fa

로컬 파일을 이전과 동일하게 변경하지만 기록 등은 그대로 두십시오.

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

인덱스 파일이나 작업 트리를 전혀 건드리지 않습니다 (그러나 모든 모드와 마찬가지로 헤드를 <commit>으로 재설정합니다). 이것은 git status에 의해 변경된 모든 파일을 "Commit to commit"으로 남겨둔다.

따라서 지점에서 최신 커밋을 "제거"합니다. 즉, 이전 코드를 확인한 후에는이 분기의 최신 커밋을 쉽게 다시 시작할 수 없습니다. 따라서 bwawok에서 설명한대로 opposide를 수행합니다. 로컬 파일은 변경되지 않지만 ( "git reset --soft"와 동일하게 표시됨) 기록은 수정됩니다 (지정된 커밋 후에 분기가 잘립니다).

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

git checkout <commit>

이것을 사용하여 이전 개정판을 엿볼 수 있습니다. 어제 코드가 어떻게 보입니까?

(나는이 답변에 의견을 달아야하지만 stackoverflow는 그렇게 할 수 없습니다! 내 명성이 너무 낮습니다.)


git reset c14809fafb08b9e96ff2879999ba8c807d10fb07 당신이 쫓아 온 것은 ...


문제를 강제하려면 다음을 수행하십시오.

git reset --hard c14809fafb08b9e96ff2879999ba8c807d10fb07

체크인 당시 git clone이 어떻게 보 였는지 다시 알려줍니다.

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

반응형