2014-01-16 39 views
0
project 
    |---src 
    |---main 
    |---config.xml 

我有一个项目文件夹与src具有所有的源代码和一些配置文件。 在src我维护git仓库,我有很多提交。恢复在git中删除的文件夹

最近我想要备份配置并在poject文件夹中创建git repo。并使用config提交项目。

不幸的是我删除整个文件夹[RM -rf *] [中使用的许多混帐回购协议,在这里错删除]

,所以我有1承诺之外。和src里面的许多提交。

当我试图

git reset HEAD --hard 

它检索的结构和存在的src内没有文件。如何检索这些文件?

任何帮助表示赞赏。

回答

0

可以检出删除的文件回用git checkout .你的工作树。

0

不幸的是,我不认为这是可能的 - 尽管有人请纠正我,否则! :-)

这听起来像你所做的是(不知不觉?)添加您的src文件夹作为一个不完整的设置子模块。如果你没有明确地添加你的src文件夹的尾部斜线,Git会认为你正在尝试设置一个子模块(即gitlink)。

git add src  # Tries to set up a proper submodule 
git add src/ # Tracks changes in src from project 

见有关faking a submodule这个环节,这就是我假设你想在第一时间做的事。

+0

@NoufalIbrahim,我指出,执行'git add'时忘记包含尾部斜线的细微差别将导致Git将您的操作解释为尝试设置子模块。我知道OP没有询问设置子模块的问题,但我只是想让OP知道这个细微差别。 – miqid

+0

我认为它应该跟踪子文件夹src [git回购]。为什么不能恢复? – Dineshkumar

+0

@Dineshkumar,如果你没有显式地''添加'src'文件夹的尾部斜线,那么影响'src'内部文件的提交对象被存储在'src'的'.git'文件夹和* not *'project'中。因此,一旦你丢失了'src'文件夹(即,连同'.git'文件夹包含,其中包含需要重建你的文件的提交),我认为不可能从'project'重建src'文件因为没有影响'src'文件的提交保存在'project'的'.git'文件夹中。 – miqid