我有一个git存储库,当我在我的repo中本地创建文件时,权限设置为-rw-r--r--
。
当我推送这些更改并且另一位开发人员撤消这些更改时,此文件现在具有对他的权限-rwxr-xr-x
。
同样的问题反之亦然,他创建了权限设置为-rw-r--r--
的文件并推送到我们的git仓库,然后我将权限提取为-rwxr-xr-x
。
造成这种情况的原因是什么以及如何解决这个问题,以便当一个开发者推送时,无论权限是什么,当下一个开发者拉动时都会应用相同的权限?
如果重要的话我们在TFS中使用Git。
答案 0 :(得分:1)
关于ServerFault(link)的类似问题 用户harrymc和boldewyn指出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