本地目录消失时从git还原

本地目录消失时从git还原,git,restore,pull,Git,Restore,Pull,好吧,这会变得很复杂: 我的.git目录与源文件位于不同的目录中。实际上,您可以使用: /usr/local/bin/git --git-dir /www/git/site/ --work-tree=. commit -a (当您位于源文件目录中时。非常规,但我们就是这样做的,并且它是受支持的) 包含源文件的目录已被删除 但是.git存储库没有,因为它位于一个单独的目录中。我能看见它,我知道它在哪里 如何将最新提交的所有内容恢复到新目录中?我在一个新目录中尝试了此操作: /usr/local

好吧,这会变得很复杂:

我的
.git
目录与源文件位于不同的目录中。实际上,您可以使用:

/usr/local/bin/git --git-dir /www/git/site/ --work-tree=. commit -a 
(当您位于源文件目录中时。非常规,但我们就是这样做的,并且它是受支持的)

包含源文件的目录已被删除

但是
.git
存储库没有,因为它位于一个单独的目录中。我能看见它,我知道它在哪里

如何将最新提交的所有内容恢复到新目录中?我在一个新目录中尝试了此操作:

/usr/local/bin/git --git-dir /www/git/site/ --work-tree=. pull 
给出:

致命:未指定远程存储库。请指定URL或 应从中获取新修订的远程名称


(仅供参考,没有远程服务器,这都是本地的)

创建新目录后,切换到该目录。然后,可以使用以下命令恢复整个树:

/usr/local/bin/git --git-dir /www/git/site/ --work-tree=. reset --hard
如果不起作用,请尝试将
.git
添加到以下位置:

/usr/local/bin/git --git-dir /www/git/site/.git/ --work-tree=. reset --hard

谢谢你问这个问题。我从来不知道可以在不同的位置使用.git目录。我认为这可以在一些非常有趣的方面派上用场。