Programing

rebase가 시작된 이후 이전 git rebase를 중단하고 커밋을 잃었습니다.

lottogame 2020. 11. 23. 07:39
반응형

rebase가 시작된 이후 이전 git rebase를 중단하고 커밋을 잃었습니다.


쓰레기! 약 일주일 전에 저장소를 정리하는 동안 일부 커밋을 리베이스하고 있었는데 실제로 완료하지 않은 것 같습니다. 오늘, 1 주일 후 몇 번의 커밋 후 오늘부터 몇 개의 커밋을 재정렬하기 위해 리베이스로 갔는데 이미 리베이스 중이라고 알려주었습니다.

혹시라도 내 저장소를 복사 할 수있는 단서가되어야합니다. 그러나 나는 ... 대신 git rebase --abort그 당시에 옳은 소리로 달리지 않았습니다 . 글쎄, 그것은 옳지 않았다. 일주일 전에 리베이스를 중단하고 마스터의 HEAD를 이전 것으로 재설정했습니다. 가짜의!

상당히 최근의 다른 분기가 여러 개 있고 원격으로 여러 번 푸시했지만 가장 최근의 변경 사항은 영원히 사라진 것 같습니다. 내 변경 사항을 복구 할 방법이 있는지 알 수있는 적절한 수준의 git-fu가 없습니다.

내가 망했어?

편집 -와우! 감사합니다! git reflog굉장합니다! 나는 완전히 회복되었습니다 ... 교훈을 배웠습니다. 첫 번째 게시에 대한 Tchalvak의 답변을 수락했습니다.


확인하십시오 git reflog. 거의 모든 경우에 이러한 커밋 해시를 참조로 사용하여 시간을 거슬러 올라갈 수 있습니다.

나는 또한 git repo 디렉토리를 다른 곳에서 물리적으로 복사하여 예비 테스트를 수행하여 무엇이 작동하는지 확인합니다. 그러면 추적되지 않은 파일을 잃지 않고 원하는 것을 엉망으로 만들거나 돌아올 수없는 상태로 만들 수 있습니다. 에서.


가장 최근 커밋 (rebase --abort 후에 사라진)의 SHA1을 git reflog.

그런 다음 현재 분기를 해당 SHA1로 재설정 할 수 있습니다.

# Suppose the old commit was HEAD@{2} in the ref log
git reset --hard HEAD@{2}

" 취소git reset --hard HEAD~1 " 와 비슷 합니다.

다른 복구 예제는 " Git을 사용하여 손실 된 커밋 복구에 대한 설명 된 가이드 "를 참조하십시오 .

참고 URL : https://stackoverflow.com/questions/2693640/aborted-old-git-rebase-and-lost-commits-since-the-rebase-started

반응형