我想设置一个Git服务器,让我的开发人员使用用户名和密码登录,以便提交和更改项目。我还需要管理开发人员对项目的访问权限(我想我应该使用gitolite)。
我该怎么做?
我习惯Subversion这很容易,因为你可以为每个开发人员设置用户名和密码,这可以轻松访问存储库而无需生成SSH密钥并将其放在服务器上。
答案 0 :(得分:2)
在Unix / Linux上,只需在服务器上为git项目创建一个新目录(命名约定是文件夹名称应以.git结尾)。 然后使用:
初始化目录git init --bare
现在你有一个空的git主仓库。用户可以使用以下命令从服务器克隆此repo:
git clone username @ hostname:/ path / to / git / folder
(将要求输入密码)
使用Unix / Linux用户管理工具管理您的开发者访问权限。
答案 1 :(得分:1)
如果您考虑“How do programs like gitolite work?”, gitolite 只是authorization layer,这意味着一个脚本:
因此,gitolite本身不允许使用用户名/密码登录(或者就此而言是ssh)。
只有你放在git / gitolite前面的监听器会询问上述用户名/密码并检查其帐号的有效性。
或者你可以使用sshd监听器,如果你想使用公钥/私钥,但想法是一样的。
请参阅“Using LDAP as auth method to manage git repositories”:如果您放置Apache或NGiNX,这些Web服务器可以查询LDAP服务器并询问/检查这些凭据。
这是身份验证步骤。
然后你需要将它们链接到gitolite(而不是git)进行授权步骤,
就像我在Apache configuration file
ScriptAlias /hgit/ @H@/sbin/gitolite-shell/ # <=== calls gitolite.
SetEnv GIT_HTTP_BACKEND "@H@/usr/local/apps/git/libexec/git-core/git-http-backend"
gitolite需要GIT_HTTP_BACKEND
才能正确调用git。
请注意,正如我在“Distributed Version Control Systems and the Enterprise - a Good mix?”中所解释的那样,git本身并不关心,也不处理身份验证/授权。
因此,你把听众放在它面前。