所以我正在尝试备份我的gitlab存储库文件。我在 /var/opt/gitlab/git-data/repositories
位置查看并找到了存储库,但是存储库的实际内容,即源代码不存在,只有配置文件,head文件信息,对象和参考文件夹等。
谁能告诉我服务器上的实际文件存储在哪里?
我丢失了gitlab的前端UI,因此无法通过浏览器访问它,需要从服务器下载我的源代码。
谢谢。
这些是是实际文件,以git的内部形式。
记住,git商店的每个版本的每个文件保存在中,每个每个 commit。为了解决这个技巧,它将它们以对其他(非GIT(程序无用的形式存储,也不直接对您。
要以对您和其他计算机程序有用的形式提取文件,您必须 git checkout
一些特定的提交。当您这样做时,您的git填充了git所谓的 work-tree ,这是您完成工作的地方。git填写了此工作树(使用git's index ,我将在此处提及但不解释,因为这有点复杂(,您可以选择一个特定的commit 。因此,此工作树的内容将取决于提交您选择的
--bare
存储库是(定义为(没有工作树的一个,因此您不能在其中工作。这使得接收传入的git push
请求变得合适,否则这可能会打扰某人可能正在做的工作。没有工作树,没有人可以在其中工作,因此没有任何工作会受到干扰。但这也意味着您不能选择一个提交并在工作树中获取其文件,因为没有工作树。
有一些方法可以从存储在裸仓库中的每个提交中查看或提取文件,但是使用它们有点棘手。例如,git archive
可以将提交变成您可以在其他地方提取的存档(焦油或拉链(。请记住,当您要求它时,通常会在一次中获得一个提交。