恢复丢失的git存储库

恢复丢失的git存储库,git,Git,我不小心在git bash上做了一个“rm-rf foldername”。所以我丢失了我的整个git存储库。它们有几个本地提交,但没有推送到远程。我注意到我可以用数据恢复工具恢复.git文件夹。如果我从远程(没有本地提交)克隆repo并用我恢复的.git覆盖.git,我是否会恢复本地提交?如果您有.git目录本身,您可以直接从该目录克隆。将.git目录放入子目录,然后克隆该子存储库: mkdir temporary mv .git-recovered temporary/.git git clo

我不小心在git bash上做了一个“rm-rf foldername”。所以我丢失了我的整个git存储库。它们有几个本地提交,但没有推送到远程。我注意到我可以用数据恢复工具恢复.git文件夹。如果我从远程(没有本地提交)克隆repo并用我恢复的.git覆盖.git,我是否会恢复本地提交?

如果您有.git目录本身,您可以直接从该目录克隆。将.git目录放入子目录,然后克隆该子存储库:

mkdir temporary
mv .git-recovered temporary/.git
git clone temporary fixed-repository
git中提交的所有内容都存储在这个目录中,所以只要您拥有这个目录(没有丢失任何内容),就应该能够轻松地恢复所有提交内容

编辑:

实际上,您可以按照@chepner的建议简化流程

mkdir fixed
mv .git-recovered fixed/.git
cd fixed
git reset --hard # restores the working directory files

如果你真的恢复了整个
.git
文件夹,就没有理由克隆任何你甚至不需要克隆的东西
git clone
基本上是从远程存储库复制
.git
。如果您已经拥有
.git
目录,只需签出分支即可。