以下命令集正常工作
$ mkdir carboncake
$ cd carboncake
$ git init
$ git remote add origin gitosis@myserver.net:repositories/carboncake.git
$ git pull
但是当我尝试拉不同的用户时,
$ mkdir carboncake
$ cd carboncake
$ git init
$ git remote add origin mithun@myserver.net:repositories/carboncake.git
$ git pull
我收到以下错误
fatal: 'repositories/carboncake.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
我的gitosis.conf
包含
[gitosis]
[group team]
writable = sweepshots
members = git_id_rsa
[group gitosis-admin]
writable = gitosis-admin
members = git_id_rsa
[repo carboncake]
description = A brand new app by Mithun.
owner = Mithun P
[group carboncake]
writable = carboncake
members = mithun @core
并且keydir
包含
git_id_rsa.pub KEY-----.pub mithun.pub mithun-rsa-key-20110427.pub
并且用户的.ssh
目录包含
mithun@testserver:~$ ls .ssh/
id_rsa id_rsa.pub mithun_rsa mithun_rsa.pub
- 更新
我也试过$ git remote add origin mithun@myserver.net:carboncake.git
,但同样的错误。
实际上carboncake.git位于/srv/gitosis/repositories/carboncake.git
答案 0 :(得分:3)
为@ VonC(完全正确)答案添加一点简明英语清晰度......
~gitosis/.ssh/authorized_keys
中。当用户ssh到帐户gitosis
时,ssh会进行加密握手,在authorized_keys文件中找到与提供的密钥匹配的行,并执行该行所说的任何操作。如果您查看该authorized_keys文件,则每个行提供一个命令,以便在该用户登录时调用,这是对gitosis进程的调用,其中包含相关用户的名称。
因此,每个用户都真的ssh'ing到SAME gitosis
“机器”帐户,但他们在那里SSH的密钥会激活他们的用户gitosis。这就是gitosis如何知道它正在与哪个用户交谈,即使他们已经登录了名为gitosis
的同一个“机器”帐户。
因此,您想要跟踪gitosis的每个本地回购都需要提供格式gitosis@your.server:<reponame>.git
的远程。
答案 1 :(得分:2)
mithun@myserver.net
?
使用mithun@myserver.net
,您完全绕过gitosis,因为正确的网址会涉及安装了gitolite的“git
”用户。
每个gitosis命令都会涉及相同的'git'用户:gitosis@myserver.net
(假设这里有'gitosis'帐户)。
另外,您不必指定仓库的完整路径:
git remote add origin gitosis@myserver.net:carboncake.git