Git,如何将裸机改为共享仓库?

时间:2012-01-16 16:31:46

标签: git repository shared git-bare

这就是我设置项目的方式:

git init --bare

后来我了解到如果你想在一个有多个用户的项目上工作,我应该这样做:

git init --bare --shared

现在我尝试这样工作,幸运的是我们在开始时所以我可以再次设置git。我仍然想知道,当你处于项目中间时,你无法做到这一点。 有没有办法可以将裸仓库改为共享仓库?

4 个答案:

答案 0 :(得分:40)

由于--shared选项只是将存储库中所有内容的权限设置为可写组,因此您可以稍后手动执行此操作:

$ chmod -R g+w the/repo/path

另外,添加

sharedrepository = 1

[core]的{​​{1}}部分下。共享存储库还默认定义了以下receive option(您可能想要也可能不想要):

.git/config

注意:为了决定是否需要denyNonFastforwards:此选项意味着合并永远不会发生在共享存储库中,这反过来意味着共享存储库上永远不会发生合并冲突。相反,推送被拒绝强制用户在他们的本地存储库中进行合并,在那里它更容易修复,并且不会干扰其他人使用共享仓库。

答案 1 :(得分:5)

除了chmod -R g + w之外,您还需要修改(.git/)config并设置core.sharedRepository = ...。对于...,有一些值,在git-init(1)中描述。

答案 2 :(得分:5)

如果您尝试共享一个现有的存储库,可能会有很多不同的用户提交。

1.如果您拥有超级用户权限,则可以使用第二步自行更改所有权限,在任何其他情况下,您需要向所有用户询问使用其用户创建的对象,请使用以下命令要知道他们是谁:

$ ls -la | awk '{print $3}' | sort -u 
<your user_name>
<his user_name>

2.现在您和所有文件的所有者用户必须更改这些文件权限,执行:

$ chmod -R 774 .

3.之后你将需要为新存储库添加一个等同于--shared = group done的新属性,根据文档,这使得存储库组可写,执行它:

$ git config core.sharedRepository group

答案 3 :(得分:3)

如果您尝试从其所在的主机上共享存储库,则必须执行其他配置步骤(ssh stuff)。

http://shapeshed.com/setting_up_git_for_multiple_developers/

http://www.jedi.be/blog/2009/05/06/8-ways-to-share-your-git-repository/