Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux git更改权限在下次提交之前无法持久化_Linux_Git - Fatal编程技术网

Linux git更改权限在下次提交之前无法持久化

Linux git更改权限在下次提交之前无法持久化,linux,git,Linux,Git,我需要将script.sh的权限设置为755。所以 git add -A git update-index --chmod=+x script.sh git commit -m 'first commit' 这样,文件将以权限755提交,我的远程vm可以执行这些脚本 但是,下次我对repo执行某些操作并提交更改时,这些脚本的权限将恢复为644。信息是 [master 171c0cc] second 2 files changed, 1 insertion(+) mode change 10

我需要将script.sh的权限设置为
755
。所以

git add -A
git update-index --chmod=+x script.sh
git commit -m 'first commit'
这样,文件将以权限
755
提交,我的远程vm可以执行这些脚本

但是,下次我对repo执行某些操作并提交更改时,这些脚本的权限将恢复为
644
。信息是

[master 171c0cc] second
 2 files changed, 1 insertion(+)
 mode change 100755 => 100644 script.sh
有人知道这里会发生什么吗?如何消除此问题?

首先检查您的:如果设置为false,工作树中的可执行文件位无论如何都不会得到尊重

如果为真或未设置,则

然后再试试看。

检查一下你的umask<代码>umask 002在您的情况下应该可以工作。

更新索引不会更改本地文件的权限。只需使用普通的unix chmod。现在
core.fileMode
为true。乌马斯克是002。我将文件模式更新为755并提交了更改。但是下一次我做
git add-A
时,所有文件模式都变回644。core.shared repository(我在回答中提到)会改变什么吗?我按照您的建议将
core.sharedRepository
设置为
group
,但结果似乎是一样的。确保您使用了core.sharedRepository,我想我知道发生了什么事。我必须从shell中执行
chmod755
,因此未来的git提交将基于实际的文件模式。否则,
git update index--chmod=+x
是一次性的,文件模式将在下次提交时由于某种原因恢复到644。