当多人推/拉时,Git权限正在发生变化

时间:2016-04-06 19:52:09

标签: git permissions file-permissions

我有一个git存储库,当我在我的repo中本地创建文件时,权限设置为-rw-r--r--

当我推送这些更改并且另一位开发人员撤消这些更改时,此文件现在具有对他的权限-rwxr-xr-x

同样的问题反之亦然,他创建了权限设置为-rw-r--r--的文件并推送到我们的git仓库,然后我将权限提取为-rwxr-xr-x

造成这种情况的原因是什么以及如何解决这个问题,以便当一个开发者推送时,无论权限是什么,当下一个开发者拉动时都会应用相同的权限?

如果重要的话我们在TFS中使用Git。

2 个答案:

答案 0 :(得分:1)

关于ServerFault(link)的类似问题 用户harrymcboldewyn指出git团队认为有一些文件系统被“破坏”。

这些文件系统的可执行位有问题。 对于那些,您必须忽略文件权限更改才能使其工作:

git config core.filemode false

这不会更改已存储在服务器上的文件权限。因此,在更改文件模式设置后,您可能必须检查权限checkout之后的权限。

答案 1 :(得分:1)

除了git config core.filemode false之外,你可以在git index中设置或取消设置可执行位,确保git会在内部记录正确的权限:

例如:

find . -name '*.sh' | xargs git update-index --chmod=+x

在你的情况下

xargs git update-index --chmod=_x -- myFile