其他详细信息:
我有一个安装了git和gitlab的ubuntu 16.04服务器。我已设法将其设置为运行状态。我甚至设法在我的客户机(windows)上进行正常的git操作。但是当我尝试克隆(git clone git@192.168.0.3:root / project.git)从服务器到服务器&var / www / html目录的repo时,它显示了这个错误:
致命:' root / project.git'似乎不是一个git存储库 致命的:无法从远程存储库读取。
请确保您拥有正确的访问权限 存储库存在。
注意:我已经使用我的客户端计算机克隆了这个项目,并且工作正常
更新:我能够通过HTTP克隆回购
有没有人知道如何解决这个问题?谢谢
答案 0 :(得分:1)
问题不是git,而是你对Ubuntu的看法
更新:我能够通过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(肮脏,简单的黑客)
如果您可以确保计算机上没有其他帐户想要访问gitlab上的(私人)存储库,您可以为每个人提供读取权限:
sudo chown o+r /var/www/path/to/repo
操作系统将允许您访问该文件夹,git将能够从本地路径克隆。
然而,使用系统时最好使用它们。如果使用本地路径进行克隆,gitlab将不会注意到这一点,例如,不会调整统计信息或运行网络钩子。
答案 1 :(得分:0)
这是关于身份验证:如果服务器上的用户(进行克隆)未通过GitLab(通过用户名/密码或ssh密钥)进行正确身份验证,则无法访问回购和您将得到通用错误消息。
检查与GitLab项目关联的权限级别:除非将其声明为public(不需要身份验证),否则您需要将服务器用户添加到项目成员列表中。
另一种解决方法是直接克隆存储在GitLab服务器上的裸存储库(在/home/git/repositories/
by default中),因为您在GitLab服务器上。