답변:
git reflog 를 사용 하여 분기의 마지막 커밋의 SHA1을 찾을 수 있습니다 . 이 시점에서 다음을 사용하여 분기를 다시 만들 수 있습니다
git branch branchName <sha1>
편집 : @seagullJS가 말했듯 이이 branch -D
명령은 sha1을 알려주므로 터미널을 닫지 않은 경우 실제로는 쉬워집니다. 예를 들어 다음과 같이 이름이 지정된 분기를 삭제 한 다음 즉시 복원합니다 master2
.
user@MY-PC /C/MyRepo (master)
$ git branch -D master2
Deleted branch master2 (was 130d7ba). <-- This is the SHA1 we need to restore it!
user@MY-PC /C/MyRepo (master)
$ git branch master2 130d7ba
git branch branchName origin/branchName
먼저 : .git 디렉토리를 포함한 전체 디렉토리를 백업하십시오.
둘째 : git fsck --lost-found
손실 된 커밋의 ID를 얻는 데 사용할 수 있습니다 .
셋째 : 손실 된 커밋을 리베이스하거나 병합합니다.
넷째 : git과 함께 -D 또는 --force를 사용하기 전에 항상 두 번 생각하십시오. :)
이런 종류의 오류를 복구하는 방법에 대한이 좋은 토론 을 읽을 수도 있습니다 .
편집 : 그건 그렇고, 실행하지 마십시오 git gc
(또는 실행하지 마십시오 (예 : 실행하지 마십시오 git fetch
).