Linux git更改权限在下次提交之前无法持久化
我需要将script.sh的权限设置为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
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。