삭제 된 파일을 복원 할 수 있습니까 (`git clean -fdx` 실행 취소)? 대한 지침을 따르고 있었고 내

나는 github 페이지 만들기에 대한 지침을 따르고 있었고 내 git 하위 디렉토리로 이동하는 것을 잊었습니다. 결과적으로 git clean -fdx.
이 끔찍한 실수를 되돌릴 수있는 방법이 있습니까?



답변

아니요. 그 파일은 사라졌습니다.

(Linux에서 확인 : git clean callsunlink() , 사전에 백업하지 않음)


답변

git clean -fdxn

테스트 실행을 수행하고 실행 하면 어떤 파일이 삭제되는지 보여줍니다.

git clean -fdx

(물론 이것은 당신이 이것을 미리 아는 경우에만 도움이되지만 다음 번에)


답변

IntelliJ / Android Studio를 사용하면 로컬 기록에서 파일을 복원 할 수 있습니다 .


답변

아니요. “git clean -fdx”는 git이 작업 디렉토리에서 추적하지 않는 모든 파일과 디렉토리를 삭제합니다. Git은 이러한 파일을 추적하지 않기 때문에 이러한 파일의 백업이 없습니다. 적어도 보통은 아닙니다.

비교적 최근에 이러한 파일 중 하나에 ‘git add’를 수행 한 경우 (그러나 커밋을 중단 한 경우) ‘git fsck –lost-found’를 사용하여 찾을 수 있습니다. 시도해 볼 가치가 있지만 너무 기대하지 마십시오.

미래에 당신은 너무 드물게 몇 번보다는 너무 자주 몇 번 커밋하는 것을 고려해야합니다. 이렇게하면 이러한 커밋을 원격으로 푸시하지 않더라도 최소한 로컬 백업이있을 수 있습니다.


답변

위에서 언급 한 @kusma처럼 좋다면 ( “git add”를 한 적이 있다면) 다음을 사용하여 전체 객체를 추출 할 수 있습니다.

git fsck | awk '{print $3}' | xargs git show | tee searchresults.log

이렇게하면 모든 유형의 청크를 찾고, 전체 diff를 수집하고 손실 된 파일을 추출 할 수있는 파일에 추가합니다. 제 경우에는 전체 Java 클래스를 잃었습니다.


답변

Jetbrains IDE를 사용하는 경우 파일의 로컬 기록을 볼 수있는 옵션이 있습니다. 을 완료 한 경우 git clean파일을 다시 생성하고 파일의 로컬 기록을 확인하고 거기에서 복원 할 수 있습니다.

단일 파일을 위해 나를 위해 일했습니다. 완전한 디렉토리를 위해 나는 그것을하는 방법을 전혀 모른다.


답변

오늘이 문제가있었습니다.

다른 사람들이 말했듯이 git은 파일을 보관하지 않습니다.

이를 실행 취소하는 유일한 방법은 삭제 취소 유틸리티를 사용하는 것입니다. “extundelete”를 사용하여 모든 것을 복구했지만 마일리지 / 파일 시스템이 다를 수 있습니다.