【问题标题】:How to download git repository from file system in GitLab CE?如何从 GitLab CE 中的文件系统下载 git 存储库?
【发布时间】:2017-08-17 02:34:56
【问题描述】:

我有 GitLab CE,但安装已损坏,我无法启动它。如何从文件系统下载和打开所有存储库?

更新:

在 gitlab.rb 我有 git 存储库路径,它是:/var/opt/gitlab/git-data/repositories/,但我发现了:

FETCH_HEAD
HEAD
config
description
hooks -> /opt/gitlab/embedded/service/gitlab-shell/hooks
hooks.old.1478620628
info
objects
refs

但是没有通常的带有源代码的存储库。

【问题讨论】:

  • 存储库的存储位置是可配置的。见this documentation。您应该检查您的配置,然后去那里。那里应该有一个希望正常的 GIt 存储库的文件结构(我没有 GitLab,所以我不知道是不是这样)。
  • 这看起来像一个存储库。你真的试过find你的仓库吗?
  • Gitlab 将存储 bare 存储库,这看起来就像一个。裸存储库将仅保存 .git/ 文件夹的内容,并且不会检出您的代码。
  • 那么,如果我的 gitlab 坏了,我在哪里可以找到真正的存储库?

标签: git gitlab


【解决方案1】:

这是一个裸存储库(您可以在this SO question 中看到非常清晰的描述)。

它不包含您的代码的检出副本,但您可以将其用作git clonegit fetch / pullgit push 的常规目标:

  • 如果它与您的工作计算机在同一台计算机上,您可以将其克隆到常规存储库:

    # in your development directory :
    $ git clone /var/opt/gitlab/git-data/repositories/<project-dir>
    
  • 如果它位于可以通过 ssh 访问的计算机上,则可以通过 ssh 克隆它:

    $ git clone user@server:/var/opt/gitlab/git-data/repositories/<project-dir>
    
  • 如果您的 gitlab 已关闭,并且没有其他用户可以修改此 repo,则只需复制目录或制作 tar 存档是安全的:

    $ cd /var/opt/gitlab/git-data/repositories/
    $ tar -czf project.tgz project-dir/
    
    # then copy this tar archive anywhere you want,
    # extract it, and use it as above
    

以上任何一项都将为您提供当前 repo 的备份,之后您可以使用它来恢复您的 gitlab。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    • 2016-10-29
    • 1970-01-01
    • 2018-12-16
    • 1970-01-01
    • 2021-12-28
    • 2012-06-10
    相关资源
    最近更新 更多