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