【发布时间】:2021-08-19 15:03:57
【问题描述】:
我的文件夹结构如下:
ls -l
total 0
lrwxr-xr-x 1 user DF\Domain Users 23 Jun 1 13:25 name1.h -> ./../../name1.h
执行以下命令后:
chmod -x name1.h
chmod -h -x name1.h
chmod g-x name1.h
chmod o-x name1.h
结果还是一样:
ls -l
total 0
lrwxr-xr-x 1 user DF\Domain Users 23 Jun 1 13:25 name1.h -> ./../../name1.h
name1.h 是使用以下命令创建的符号链接:ln -s。
如何从 macOS 上的该文件中删除执行权限,以便将其提交给 Git。
另一种行不通的方法:
git update-index --chmod=-x fs_ccf_log.h
fatal: git update-index: cannot chmod -x 'src/SwiftPackage/include/name1.h'
【问题讨论】:
-
name1.h是否在同一个存储库中? -
是的,它在同一个存储库中。此外,我尝试删除符号链接,在没有执行权限的情况下再次创建它们,然后提交和推送。在我系统的本地副本上,这些文件仍然显示为不可执行,但在远程(bitbucket 存储)上,它们具有执行权限。再次克隆 repo 时,执行权限也出现在我的系统上。
-
符号链接上的 x 位是没有意义的。符号链接在名称查找期间被替换,除非您正在执行 lstat() 调用(或等效)并且符号链接是最后一个组件;然后使用符号链接的 target 上的权限。 (至于 Git 本身,请参阅下面的 Matt 的回答:Git 只存储对象是符号链接的事实,而不是任何模式位。)
-
@torek 你是对的。似乎是错误显示符号链接的权限状态的bitbucket stash问题。
标签: git terminal permissions execute chmod