我需要在Ubuntu服务器上安装git,这个服务器将被多个用户共享和访问。
我假设我将使用git + ssh,所以每个用户都有一个系统帐户,但是我怎样才能安装git和一个版本库,以便每个用户都可以推送/拉取一个本地IP?
我会build议使用gitolite来pipe理用户访问和权限。
描述它的最好方法是引用开发者:
Gitolite允许你在一台服务器上使用一个用户来托pipe许多git仓库,并为许多开发人员提供访问权限,而不必为其提供真正的用户名或对服务器的shell访问权限。 这样做的基本魔法是ssh的pubkey访问权限和authorized_keys文件,灵感来自一个名为gitosis的旧程序。
Gitolite可以限制谁可以读取(克隆/读取)或写入(推送)存储库。 它还可以限制谁可以推到什么分支或标签,这在企业环境中是非常重要的。 Gitolite可以在不需要root权限的情况下安装,并且不需要git本身和perl以外的软件。 它还有其他几个在doc /目录中描述的其他特性。
以下是我个人想强调的一些function:
祝你好运
-víðir
一种方法是为“git”用户创build一个组,并添加您想要访问该组的所有用户。 您可以使用“groupadd”命令创build组,然后编辑/ etc / group修改该组中用户的逗号分隔列表。 我通常根据项目命名组,比如“newwebsite”而不是像“git”。 例如,/ etc / group条目可能如下所示:
newwebsite:x:999:swarren,jafo,kyle,mlb
现在创build一个目录来保存git仓库,比如说“/ var / git / newwebsite”:mkdir -p / var / git / newwebsite
在此目录上设置权限以包含组粘滞位:
chgrp newwebsite /var/git/newwebsite chmod g+ws /var/git/newwebsite
现在使用以下命令在这个目录中初始化仓库:
cd /var/git/newwebsite git init --bare --shared=group
注意:不要用您的组replace“组”,它需要是string“组”。
如果这个错误出来了,你的“git”版本可能不支持“–bare”选项。 在这种情况下删除“–bare”选项。
此时,您的用户应该能够通过以下方式检出存储库:
git clone git+ssh://$USER@$HOST/var/git/newwebsite
在Ubuntu上安装git
sudo apt-get install git-core
有关如何使用它的说明看看这个文件,我发现了一个很好的参考。