所以这就是我设置我的项目的方式:
git init --bare
后来我了解到,如果你想处理一个有多个用户的项目,我应该这样做:
git init --bare --shared
现在我试着像那样工作,幸运的是我们还处于起步阶段,所以我可以再次设置 git。我仍然想知道,当您处于项目中间时,您不能这样做。有没有办法可以将裸仓库更改为共享仓库?
所以这就是我设置我的项目的方式:
git init --bare
后来我了解到,如果你想处理一个有多个用户的项目,我应该这样做:
git init --bare --shared
现在我试着像那样工作,幸运的是我们还处于起步阶段,所以我可以再次设置 git。我仍然想知道,当您处于项目中间时,您不能这样做。有没有办法可以将裸仓库更改为共享仓库?
由于该--shared
选项只是将存储库中所有内容的权限设置为组可写,您可以稍后手动执行此操作:
$ chmod -R g+w the/repo/path
另外,添加
sharedrepository = 1
在中的[core]
部分下.git/config
。默认情况下,共享存储库还定义了以下接收选项(您可能想要也可能不想要):
[receive]
denyNonFastforwards = true
注意:为了决定是否需要denyNonFastforwards:此选项意味着共享存储库中永远不会发生合并,这反过来意味着共享存储库中永远不会发生合并冲突。相反,推送被拒绝,迫使用户在他们的本地存储库中进行合并,这样更容易修复并且不会干扰其他人对共享存储库的使用。
可能如果您尝试共享现有存储库,您可能会有很多不同的用户提交。
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
除了 chmod -R g+w 之外,你还需要编辑(.git/)config
和设置core.sharedRepository = ...
. 对于 ...,有一些值,在 git-init(1) 中进行了描述。
如果您尝试从它所在的主机共享存储库,则必须执行其他配置步骤(ssh 内容)。
http://shapeshed.com/setting_up_git_for_multiple_developers/
http://www.jedi.be/blog/2009/05/06/8-ways-to-share-your-git-repository/