管理没有root权限的git仓库

时间:2010-11-26 10:55:47

标签: git repository

我想在我的主目录中创建一个简单的git-repo,我的同事可以访问同一个文件系统,允许他们git push进入它。但是,我不希望他们能够使用git以外的任何内容来意外修改回购,因此我不能只chmod g+w

这可能不是root吗?我唯一能想到的是将SUID位设置为git,因此git可以像我一样访问repo,但我不知道这是否真的是个好主意......

3 个答案:

答案 0 :(得分:2)

您可以使用类似gitolite的内容来处理很多麻烦。

如果你想使用普通的git,你可以这样做:

为了做到这一点,你所有的同事都需要在同一个团队中(例如开发人员)。您可以使用以下方法一次修复所有内容:

newgrp developers
git init --bare --shared=group repo

但是你会得到一个空的存储库。你可以将当前的工作推到那里并继续从那里开始。

如果你不使用git init路径,你需要自己设置apprioprate权限,并设置core.sharedrepository=1配置变量。

答案 1 :(得分:1)

如果您将您的仓库公开为file:///,则会应用文件权限。据我所知,git本身并不处理“权限”。用于发布repo的机制负责处理该方面(ssh,.htacess或web的某些键)。


这是未经测试的,但我认为您应该能够使用git daemon设置一个守护程序,用户可以使用该守护程序从您的回购中推/拉。它需要对您的存储库进行读/写访问,但这没关系,因为它正在以您的身份运行。您的用户只能使用此权限访问您的存储库。有关详细信息,请查看手册页(git help daemon)和this。 然而,我的原始观点仍然存在。这是使用file:///协议公开不需要root权限的存储库的一种方式。

答案 2 :(得分:0)

最好的方法是使用gitosis,或者只是像创建新git用户那样简单,并让受信任的用户使用ssh密钥进入该帐户。

后者并没有真正阻止人们在不使用git的情况下访问文件,如果这很重要,请花时间正确配置gitosis。