2017-11-07 17 views
0

방금 ​​파란 화면이 생겼습니다. 숨은 상자에서 지난 주 내 모든 작업을했습니다.하지만 이제 그 이벤트가 끝난 후 ... 음, 나는 이라고 말하면서 탐색기에 .git 폴더를 볼 수 있습니다. 그것은 ... 여기 PowerShell을 조금 플레이 자식의 REPO되어 있지 않으며Windows 블루 스크린 이후에 자식 repo 복구?

PS C:\Users\tyoc\Documentos\wtf> git status fatal: Not a git repository (or any of the parent directories): .git PS C:\Users\tyoc\Documentos\wtf> cd .git PS C:\Users\tyoc\Documentos\wtf\.git> git status fatal: Not a git repository (or any of the parent directories): .git PS C:\Users\tyoc\Documentos\wtf\.git> cd .. PS C:\Users\tyoc\Documentos\wtf> git init Reinitialized existing Git repository in C:/Users/tyoc/Documentos/wtf/.git/ PS C:\Users\tyoc\Documentos\wtf> git status fatal: Not a git repository (or any of the parent directories): .git PS C:\Users\tyoc\Documentos\wtf> git fsck --no-reflog fatal: Not a git repository (or any of the parent directories): .git PS C:\Users\tyoc\Documentos\wtf> git stash fatal: Not a git repository (or any of the parent directories): .git

재산으로 환매 특약은 중앙 저장소를 가지고 있기 때문에, 그래서 모두가 OK이다, 다시 마리화나를 얻을 좋을 것입니다 ...하지만 내 일은 아니지만, 일주일 동안 아무 것도 만들지 않으면 어떻게 될까 ... : S.


내가 설명이 추가 :

블루 스크린이 내 작품이 숨김에이었다이었다 전에 REPO의 상태를 (I은 7과 같은 이전에 숨겨 놨다가이 마지막 주에 내 작품이었다), 내 클라이언트가 뭔가를 수정하도록 요청했기 때문에 (그래서 내가 무엇을하고 있었는지 숨기고) 변경 작업을 수행하고 푸시 ... 몇 초 전에 숨겨 놓은 것을 복원했는데 블루 스크린을 얻었습니다. .git dir이 거기에 있어도 자식 명령을 수행 할 수 없습니다 ... (뭔가가 포함되어 있는지 또는 구조체인지 만 알 수 없습니다.)

그래서, 파일의 상태가 깨끗한 작업 복사본이었다 (때문에 순간에 요청 된 변경) 내 실제 - 실제 작업/잘 ... I

그리고 마리화나에입니다했다 프런트 엔드로 sourcetree를 사용하고 있었는지 ... sourcetree 또는 하루가 끝나면 블루 스크린의 잘못인지 모르겠다.하지만 그 일은 내가 숨은 채로 직장을 잃어버린 것입니다 ...

+1

은 왜 그냥 신선한 새로운 폴더에 자식의 repo를 복제하지 않고 단지 (작업을) 당신이 변경된 파일을 복사 : 나는 다음과 같은 .git 만족/HEAD를 추가하여 문제를 해결. – equivalent8

+1

.... 또는 다른 방법으로 오래된'.git' 폴더를 제거하고, repo를 새 폴더에 복제하고'.git' 폴더를 이전 폴더에 복사하십시오. – equivalent8

+0

복구하려는 작업이 손상된 Repo ... – tyoc213

답변

0

내 trashed git repo의 백업을 먼저 수행 한 다음 repo를 @ equivalent8에 suguested로 복제했지만 모두를 대체하지 않았습니다. 내부에서이 파일을 사용했습니다.

  • 설정
  • FETCH_HEAD
  • HEAD
  • 인덱스 sourcetree이 작업을 열고 자식 상태 할 수 있도록 허용
  • 포장 심판
  • sourcetreeconfig

(예. 그것은 다시 git repo이었다). 그것이 내가에 위입니다 해시를 복사 된 후보라면 내가는 내가 각 DIFF를 볼 수 있도록 조금이

git fsck --no-reflog | select-string 'dangling commit' | foreach { $bits = $_ -split ' '; echo $bits[2]; git show $bits[2]}

같은 검색 및 검사 커밋하여 커밋 수정 https://stackoverflow.com/a/91795/682603에서 다음

첫 번째 라인은 q을 누르면 다음 마하로 진행됩니다.

그럼 내가 한 각 후보에 대한

git diff 52abca5cba3ff37b4954fd2c2e12c867dceb9481 --color=never > 52abca.patch git diff 48f7110fa9d507226ce31593a0fc957e465d6c91 --color=never > 48f711.patch

는 SO 후보자를 다시 손실 및 확인 내가 해달라고 그렇게, 내 작품은 아직 거기에 있었다!

git apply 48f711.patch 할 때마다 나는 각각을 확인하기 위해 적용 할 수 없다. 나는 손으로 각 파일을 붙여 넣거나 지워야 할 것 같아요 ???

0

내 화면에는 내 자식 저장소가 분명히 손상되어 나타납니다. .git/HEAD 파일이 비어있는 것으로 나타났습니다.

ref: refs/heads/master