gpt4 book ai didi

Gitlab无法在服务器上克隆,但可以在客户端克隆

转载 作者:行者123 更新时间:2023-12-04 19:14:28 24 4
gpt4 key购买 nike

其他详细信息:

  • 项目是私有(private)的
  • 服务器用户 ssh key 添加到 authorized_keys 和 ssh 也添加到用户的 gitlab ssh 设置

  • 我有一个安装了 git 和 gitlab 的 ubuntu 16.04 服务器。我已经设法设置它并让它运行。我什至设法在我的客户端机器(Windows)上进行正常的 git 操作。但是,当我尝试从服务器克隆(git clone git@192.168.0.3:root/project.git)一个仓库到服务器的/var/www/html 目录时,它会显示此错误:

    致命:“root/project.git”似乎不是 git 存储库
    致命:无法从远程存储库中读取。

    请确保您拥有正确的访问权限
    并且存储库存在。

    注:我已经用我的客户端机器克隆了同一个项目,它工作正常

    更新:我能够克隆一个 repo,但通过 HTTP

    有人知道如何解决这个问题吗?谢谢

    最佳答案

    问题不是 git,而是你在 Ubuntu 上的权限

    Update: I was able to clone a repo but via HTTP



    你去吧。 gitlab 服务器应该通过 HTTP(S) 访问,因为通常您不会从位于同一台计算机上的存储库中克隆。

    为了防止其他用户或应用程序访问/操作存储库中的数据,只有 gitlab 服务器可以访问其文件。

    尽管不建议这样做(因为它违反了 linux 的权限理念,即每台服务器都有自己的用户帐户),但您仍然可以给自己权限。

    变体 1(侵入性较小)
    将自己添加到运行 gitlab 服务器的组中
    sudo usermod -a -G gitlab paul

    并确保所有者组至少对目录具有读取权限
    sudo chown g+r /var/www/path/to/the/repo

    和文件(更新)
    sudo chown -R g+r /var/www/path/to/the/repo

    变体 2(肮脏、简单的 hack)

    如果您可以确保在您的计算机上拥有帐户的其他人都不想访问 gitlab 上的(私有(private))存储库,您可以授予每个人读取权限:
    sudo chown o+r /var/www/path/to/repo

    然后操作系统将允许您访问该文件夹,并且 git 将能够从本地路径克隆。

    然而,使用系统被认为使用的方式是一种很好的做法。 如果您使用本地路径进行克隆,gitlab 不会注意到这一点,例如,不会调整统计信息或运行 web Hook 。

    关于Gitlab无法在服务器上克隆,但可以在客户端克隆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43624138/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com