【问题标题】:Git, How to change a bare to a shared repo?Git,如何将裸机更改为共享存储库?
【发布时间】:2012-02-11 13:48:41
【问题描述】:

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

git init --bare

后来我了解到,如果您想处理一个有多个用户的项目,我应该这样做:

git init --bare --shared

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

【问题讨论】:

  • 另一个想要修改现有裸仓库的用例是,如果您的远程仓库已损坏,并且您试图用您从常规仓库逆向工程的裸仓库替换它。
  • 早在git 1.7.1 你就可以在exiting 裸仓库中运行git init --bare --shared 命令,git重新初始化 仓库与指定的共享。

标签: git repository shared git-bare


【解决方案1】:

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

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

另外,添加

sharedrepository = 1

.git/config 中的[core] 部分下。共享存储库还默认定义了以下receive option(您可能想要也可能不想要):

[receive]
    denyNonFastforwards = true

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

【讨论】:

  • 啊哈好吧!很高兴知道,希望我以前问过这个。谢谢!
  • 好的,我明白了!我刚刚阅读了@jørgensen 的答案,证实了这一点。 Stackoverflow 应该有一个组合的答案按钮:D!非常感谢大家,非常有启发性!
  • 对我不起作用。它需要chmod -R g+s ...。新的git init --bare --shared 将拥有组权限“rws”。 (Ubuntu 12.04)
  • @Unapiedra - 您想在所有目录上添加组粘性位,但常规文件应该只是 g+rw 。粘性位将确保任何新文件都具有相同的组设置。
  • 仅供参考:在许多参考文献中,还建议使用sharedrepository = group,根据手册页,这与sharedrepository = 1 相同!
【解决方案2】:

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

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】:

    除了chmod -R g+w,还需要编辑(.git/)config,设置core.sharedRepository = ...。对于...,有一些值,在 git-init(1) 中进行了描述。

    【讨论】:

    • 好的!这似乎完成了我的怀疑,即我还需要更改配置。谢谢!
    【解决方案4】:

    如果您尝试从它所在的主机共享存储库,则必须执行其他配置步骤(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/

    【讨论】:

    • 我认为这不是我们为当前的回购所做的。不过谢谢!
    猜你喜欢
    • 2011-11-08
    • 1970-01-01
    • 2011-01-13
    • 2014-10-05
    • 1970-01-01
    • 2011-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多