【发布时间】:2014-05-04 19:47:31
【问题描述】:
案例:
我已经按照this 教程在ubuntu 12.04 版中安装了项目omnibus-gitlab。
一切似乎都是正确的。服务器通过局域网正常工作,IP为192.168.1.68,我可以访问gitlab的所有功能(使用浏览器)。
在那里,我创建了一个名为 root 用户(管理员)的项目,名为 project1 (密钥也已正确配置)
通过浏览器创建项目后,我在本地工作区再次创建它,将其定义为提交的存储库(进行了一些更改)并将其推送到服务器。基本上我遵循了这些步骤:
mkdir teste
cd teste
git init
touch README
git add README
git commit -m 'first commit'
git remote add origin git@192.168.1.68:root/project1.git
git push -u origin master
在push命令的那一刻,终端返回了这个消息:
root@pcname:~Projects/project1# git push -u origin master
git@192.168.1.68's password:
fatal: 'root/project1.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
好的。做了一些尝试来发现为什么会发生这种情况,我才意识到当我们访问 ssh 服务器 git@192.168.1.68 时,我们并没有访问真正的存储库目录,而是访问了之前的 3 个级别。
所以,这是包含存储库的目录:
/var/opt/gitlab/git-data/repositories 在这里我们有 root/project1.git 目录/存储库。
当我们访问git@192.168.1.68:root而不是那个路径时,我们实际上是在访问:
/var/opt/gitlab 没有root 目录。
所以结果自然是git警告说没有找到仓库。
ps:我们是否使用git@192.168.1.68:git-data/repositories/root/project1.git代替git@192.168.1.68:root/project1.git,它工作得很好,我们能够正常推送存储库。
问题:
为什么会发生这种情况,如何将 ssh 地址指向正确的目录(或存储库)路径?
【问题讨论】:
-
如果
root重定向到/var/opt/gitlab你能不使用git remote add origin git@192.168.1.68:root/git-data/repositories/project1.git吗? -
否,因为
git@192.168.1.68:root/git-data/repositories/project1.git将访问路径/var/opt/gitlab/root/git-data/repositories/project1.git。正确的路径是/var/opt/gitlab/git-data/repositories/root/project1.git,所以我可以使用命令git@192.168.1.68:git-data/repositories/root/project1.git但这似乎不是正确的方式