所以我正在尝试备份我的 gitlab 存储库 文件 .我查看了/var/opt/gitlab/git-data/repositories
位置并找到了存储库,但存储库的实际内容即:源代码不存在,只有配置文件、HEAD 文件信息、对象和 refs 文件夹等。
谁能告诉我实际文件存储在我的服务器上的哪个位置?
我丢失了 gitlab 的前端 ui,因此无法通过浏览器访问它,需要从服务器下载我的源代码。
谢谢。
最佳答案
这些是 Git 内部形式的实际文件。
请记住,Git 存储每个提交中保存的每个文件的每个版本。为了实现这个技巧,它将它们存储在对其他(非 Git)程序或(直接)对您无用的形式中。
要以对您和其他计算机程序有用的形式提取文件,您必须 git checkout
一些特定的提交。当你这样做时,你让 Git 填充 Git 所谓的工作树,这是你工作的地方。 Git 从您选择的一个特定提交中填充此工作树(使用 Git 的索引,我将在此提及但不解释,因为这有点复杂)。因此,此工作树的内容将取决于您选择的提交。
一个 --bare
存储库是(定义为)没有工作树的存储库,因此您无法在其中工作。这使它适合接收传入的 git push
请求,否则可能会干扰某人可能正在做的工作。没有工作树,就不可能有人在其中工作,所以没有工作可以被打扰。但这也意味着您不能选择一个提交并将其文件放在工作树中,因为没有工作树。
有一些方法可以从存储在裸存储库中的每个提交中查看或提取文件,但使用起来有点棘手。例如,git archive
可以将提交转换为可以在其他地方提取的存档(tar 或 zip)。请记住,当您提出请求时,通常一次只会获得一个提交。
关于Gitlab存储库文件内容位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49978452/