我需要拉动主分支,但是在将它合并到我的本地主机时遇到了问题,因此我认为只需rm -rf整个文件夹即可。这是我迄今为止生命中最大的错误,因为我在我的.git中提交了一个未经处理的本地分支。有人可以告诉我有一些方法找到并恢复这个?如果它有所作为,我就在Windows机器上。
谢谢大家。
答案 0 :(得分:1)
如果您使用的是Windows备份,请访问
https://support.microsoft.com/en-us/help/17119/windows-7-recover-lost-deleted-files
答案 1 :(得分:1)
.git实际上是一个包含本地存储库的文件夹。删除您删除了您的历史记录。
如果仅删除了存储库(.git文件夹)而不删除了父源目录,则源代码目录中仍应存在最新版本的代码文件。如果您删除整个源文件夹以及存储库,则需要查看还原文件。
正如您在Windows上一样,如果您没有备份,系统还原可能是您唯一的选择。
您可能无法完全恢复,但如果您有最近的图片,则可能会得到一些恢复。
如果你没有运气,你需要对文件恢复做更多的研究。有应用程序可用。如果那是您需要的路线,我建议不要写入磁盘(最好不要写入磁盘)。
答案 2 :(得分:1)
好吧,所以我的git历史(我愚蠢地删除了.git文件)显然都失去了所有的希望 - 但不过!所有希望都没有最终丢失,因为遵循Lincoln Spector的sage建议,我能够恢复所有我删除的工作目录,大多数< / strong>处于最新状态,其中 rest (我仍然非常感激这些)仅仅过了几天。 Recuva Portable,这只是那里推荐的一种策略,刚刚为我节省了数天的工作量和数百万发。
感谢所有答案。我只是把它扔进去,因为我告诉我使用系统恢复/ Windows备份/恢复点的某种形式或其他形式,如果只是我一直在预防性地使用这些功能,这将是很好的。唉,我不是。所以我不得不走脏路。因此,如果有人足够智能已经使用这些功能,请务必使用其他答案中提供的路线,尤其是 Tone 。如果有人像我一样在过去和现在都失败了,Recuva
效果很好。
答案 3 :(得分:0)
我想分享我的类似经历并给予一些希望。
在我公司,我们尚未迁移到git,仍然使用TFVC进行版本控制。由于git在 一切 方面都非常优越,因此我开始使用本地git存储库进行工作。工作流基本上是使用git作为草稿工作区,然后在事情准备就绪时分批提交TFVC。问题是我的git存储库仅是本地的。
要签到TFVC,请保留一个sync
分支,该分支与TFVC分支保持同步。因此,我有本地git分支feature-1
,feature-2
等。然后我检出了sync
分支。确保它已同步到TFVC,将我要提交给TFVC的git内容合并到sync
中,提交给TFVC。
很难描述TFVC所带来的痛苦和苦难,而不必完全抨击创建它的人们,至少我希望他们的最大意图是。让我们说git在我看来是一款出色的软件,而我在TFVC方面的工作并不十分愉快。
要控制我的提交(并且由于TFVC不够出色),我通过将本地工作区与服务器同步来启动该过程。为此,可以将命令tf reconcile
与选项clean
一起使用,实际上是“占用服务器工作空间”。现在,我的git存储库位于TFVC存储库内(misstake)。 TFVC背后的好伙伴决定tf reconcile /clean
的合适默认值是清除被忽略的文件(??)。通常,这不是问题,因为您会得到一个可爱的GUI(???),它会提示您要清除的文件。
也许您是一个不喜欢终端的人,在这种情况下,您可能会使用Power Shell之类的东西。或者,也许您希望它令人敬畏,因此您使用了命令提示符。我,我喜欢bash。问题是,由于未知原因,在bash中,未显示上述提示。我的意思是,您正在bash中,为什么要打开一个愚蠢的GUI窗口。由于未显示,失败或其他原因,没有显示GUI,接下来发生的事情是一件美事。 TFVC才进行。
$ tf reconcile //clean
Deleting .git
$ git status
fatal: not a git repository (or any of the parent directories): .git
...
非常感谢,TFVC并没有阻止一切。事实证明,将某些东西放在一边(看起来有些武断)已经足够了。
惊慌失措后,我下载了Recuva,以尝试弄清TFVC的功能。
原来,它能够恢复.git
文件夹中的某些文件。一堆二进制哈希文件,但更重要的是,像HEAD
这样的文件。
我恢复了删除文件,这些文件可以恢复到单独的驱动器上的单独文件夹中(以避免写入扇区)。然后将原始位置复制到恢复的位置(不覆盖)。瞧,
$ git status
On branch main
与原始位置进行比较会产生:
Only in .git: COMMIT_EDITMSG
Only in .git: config
Only in .git: config_1
Only in .git: description
Only in .git: HEAD
Only in .git: HEAD_1
结果表明TFVC保留了大部分存储库,文件恢复足以恢复本地存储并重新运行。似乎有些东西丢失了,例如隐藏起来,但是我在git中而不是在TFVC中提交给分支的工作似乎可以恢复。
如果像我这样,大多数git repo保持完整(或者如果大多数可恢复),则可能只运行git init