【问题标题】:Git keeps removing group write permissionsGit不断删除组写权限
【发布时间】:2013-01-31 19:41:23
【问题描述】:

我有一个与多个开发人员共享的 git 存储库。我们使用它进行常规的 git 拉取和推送。不幸的是,每次我执行 git pull 更改的文件都会失去组写入权限。如何阻止 git 这样做?

我在 Ubuntu 12.04 LTS 上运行它。

共享仓库上的配置如下所示:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = true
        sharedRepository = group

我还对它运行了以下命令以尝试修复它

find repo.git -type d -exec chmod g+rws {} +
sudo chmod -R g+rw repo.git/objects

当我分别想要 775 和 664 时,无论我最终得到 755 的文件夹和 644 的文件。

【问题讨论】:

标签: linux git file-permissions


【解决方案1】:

您应该使用core.sharedRepository=groupcore.sharedRepository=0664 设置。

参见例如http://criticallog.thornet.net/2010/01/07/sharing-your-git-repository/

【讨论】:

  • 我得试试这个。
  • 我必须承认这是我在设置时写的,它对我不起作用blush。我想知道我是否设置正确,因为它似乎适用于链接作者
  • 当使用git init --shared 时,它添加了配置选项core.sharedrepository = 1,这可能与truegroup 相同。我开始认为这仅适用于存储库而不适用于工作文件,因为它还添加了receive.denyNonFastForwards
【解决方案2】:

你可以在一个 git hook 上使用类似的东西:

#!/bin/sh
#
# .git/hooks/post-merge

sudo chmod -R g+rw *

在每次 git pull 后调用,文件 (.git/hooks/post-merge) 必须是可执行的

【讨论】:

  • 恕我直言,这不是一个很好的答案,因为sudo 不适用于很多人。
  • 如果您有权执行chmod,则可以删除sudo
【解决方案3】:

相关用户还需要将他们的 umask 设置为 002。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-26
    • 2012-12-17
    • 2011-12-11
    • 2017-07-07
    • 1970-01-01
    • 2015-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多