过去几天我一直在互联网上爬行并做着各种工作,但似乎无法让它们全部协同工作。
我设法通过智能 HTTP(通过 HTTP 进行拉取和推送)为单个存储库获取了与 Ubuntu 10.04 配合使用的 HTTP 存储库。这意味着我通过 SSH 对服务器进行初始设置(git init --bare
),然后客户端可以向其进行拉取和推送(git clone http://servername/allgitrepos/repo.git
)。
不幸的是,如果不通过 SSH 连接到服务器并手动添加,就无法添加新的 repo),即git push http://servername/allgitrepos/repo2.git
(allgitrepos 可供所有人读写和执行) 会失败git update-server-info
(这似乎是一个通用的错误消息)。
到目前为止,该存储库是匿名的,因此我想使用 LDAP 进行身份验证和还可以使用 LDAP 凭据来进行 git 提交。
那么,我如何将新的 repos 推送到服务器以及如何使用 LDAP 凭证来进行 git 提交。
谢谢
编辑1
- 可以使用 git-remote 完成吗?
答案1
听起来gitolite
可能适合您的需要。
我不记得它是否适用于 10.04 via,apt-get
但你可以从以下位置克隆它(git
当然是通过)https://github.com/sitaramc/gitolite
答案2
您无法轻松实现这一点。git 远程协议没有创建存储库的方法,这是 的副作用git push
。您可以编写一个围绕 git 的包装器,当您尝试推送时,它会自动创建存储库。