我正在运行一个Debian系统,并且最近使用DEB软件包安装了gitolite。
这是我的问题:
我已经尝试克隆gitolite-admin.git存储库(用于为所有希望gitolitepipe理的存储库configurationgitolite安装)。
我的第一次尝试正是如何指示说:
git clone gitolite@server:gitolite-admin
我收到以下错误:
fatal: 'gitolite-admin' does not appear to be a git repository fatal: The remote end hung up unexpectedly
注意:如果我用gitolite-admin.gitreplacegitolite-admin,也会发生同样的情况
但是,当我做到以下几点:
git clone gitolite@server:~/repositories/gitolite-admin.git
该行成功将存储库克隆到本地工作站。
现在,我没有问题添加额外的文本到文件path,但是我被告知,这是不正确的文档。
以下链接( http://sitaramc.github.com/gitolite/doc/3-faq-tips-etc.html )指出:“在git克隆中的repo名称开头添加存储库”是一个常见的错误/错误。 它还指出:“事实上,gitolite在内部预装$ REPO_BASE,所以你不应该也这样做!”
我的.gitolite.rc文件包含以下行$ REPO_BASE:
[Located in /home/gitolite/.gitolite.rc] $REPO_BASE="repositories";
我的问题是, 我的configuration出了什么问题,导致$ REPO_BASE不能预定我的git克隆?
如果您需要更多信息,请留下评论,说明您需要什么信息,我会很乐意。
其他说明:
能够访问gitolite@server:~/repositories/gitolite-admin.git
,而不是gitolite@server:gitolite-admin
表示你不会“通过”Gitolite,而只是使用纯粹的基于SSH的访问gitolite用户。
如果ssh gitolite@server echo normal access
可以normal access
,那么您使用的密钥不限于通过Gitolite。 如果你正在经历Gitolite,你会看到类似bad command: echo normal access
东西bad command: echo normal access
。
如果你有一个密钥,你可以通过SSH连接到gitolite用户本身,并尝试使用同一个密钥作为Gitolite用户进行身份validation。 gitolite的.ssh/authorized_keys
没有任何特殊的前缀,将出现“正常访问”键。 configuration为通过Gitolite的密钥行将以command="/path/to/gl-auth-command gitolite-username",…
。
如果您需要对gitolite用户和基于Gitolite的访问进行正常的基于SSH的访问,那么您应该为这些目的设置单独的密钥,以便您可以指定要在.ssh/config
文件中使用IdentityFile
选项的密钥(可能也IdentitiesOnly
如果你发现ssh正在使用“错误的”键,只是因为你已经把它加载到你的ssh-agent中 )。
例如:
使用你的“默认”键( ssh默认的一个(例如~/.ssh/id_rsa
)或者你通常在你的ssh-agent中加载的一些键)来访问Gitolite(即你有公钥活跃keydir/your-gitolite-user-name.pub
)。
生成~/.ssh/gitolite-user
用于直接login到gitolite用户。 使用ssh -i ~/.ssh/gitolite-user gitolite@server
进行login。 或者,添加一个自定义条目到~/.ssh/config
:
Host gitolite-user User gitolite HostName server IdentityFile ~/.ssh/gitolite-user IdentitiesOnly yes
所以你可以做ssh gitolite-user
login。
我有这个相同的错误:
fatal: 'gitolite-admin' does not appear to be a git repository
回购一直在工作,但回滚使用gitolite恐慌部分中build议的服务器上的克隆后,回购一些文件拥有所有者的根,而不是gitolite3。
gitolite-admin.git# ls -l total 48 drwx------ 2 gitolite3 gitolite3 4096 Mar 27 2012 branches -rw-r--r-- 1 gitolite3 gitolite3 6 Mar 27 2012 COMMIT_EDITMSG -rw------- 1 gitolite3 gitolite3 119 Jul 12 2013 config -rw-r--r-- 1 gitolite3 gitolite3 73 Aug 25 2013 description -rw-r--r-- 1 gitolite3 gitolite3 128 Aug 23 20:44 gl-conf -rw------- 1 root root 23 Aug 26 13:45 HEAD drwx------ 2 gitolite3 gitolite3 4096 Aug 25 2013 hooks -rw------- 1 root root 605 Aug 26 13:45 index drwx------ 2 gitolite3 gitolite3 4096 Mar 27 2012 info drwxr-xr-x 3 gitolite3 gitolite3 4096 Mar 27 2012 logs drwx------ 83 gitolite3 gitolite3 4096 Aug 26 14:01 objects drwx------ 4 gitolite3 gitolite3 4096 Mar 27 2012 refs
解决方法是将所有权更改回gitolite3。
gitolite-admin.git# chown -R gitolite3:gitolite3 *