Gitlab存储库文件内容位置

标签 git file ubuntu repository gitlab

所以我正在尝试备份我的 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/

相关文章:

Git:在此树中查找重复的 blob(文件)

java - 如何在其余服务中接收以八位字节流类型发送的图像?

Ruby - 如何将 EOF 标记添加到 PDF 文件中或以其他方式绕过 PDF::Reader::MalformedPDFError: PDF 不包含 EOF 标记

linux - 无法在 Chef 中安装 Recipe

svn - 获取 svn :ignore'd files 的递归列表

git - 如何在最后一次 X 提交中添加的行中搜索和替换字符串?

eclipse : "re-indexing repository workspace"或 "Computing Git status for repository workspace"

bash - Git bash 完成没有按预期完成 git 命令

python - 将一组内置函数从一个 python 文件导入到另一个 python 文件

ubuntu - 内核 panic - 不同步 : No working init found