6

我有一个与多个开发人员共享的 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 的文件。

4

3 回答 3

3

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

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

于 2013-11-26T13:57:55.980 回答
1

你可以在一个 git hook 上使用类似的东西来做到这一点:

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

sudo chmod -R g+rw *

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

于 2013-02-15T18:53:17.093 回答
0

有问题的用户还需要将他们的 umask 设置为 002。

于 2015-05-28T12:37:58.117 回答