如何确定git中的文件是否可执行?

如何确定git中的文件是否可执行?,git,Git,如果我在git存储库中有一个文件,如何确定该文件的给定版本是否可执行 我知道git会跟踪文件是否可执行,并且git show会显示执行权限的更改。例如,给定修订版上的git show输出可能包括: diff --git file file old mode 100644 new mode 100755 这表示该文件已获得执行权限 我想确定指定文件的当前版本或任何指定版本是否具有执行权限 (背景:我有一个包装器脚本,它使用 git show $commit:./$filename > ./

如果我在git存储库中有一个文件,如何确定该文件的给定版本是否可执行

我知道git会跟踪文件是否可执行,并且
git show
会显示执行权限的更改。例如,给定修订版上的
git show
输出可能包括:

diff --git file file
old mode 100644
new mode 100755
这表示该文件已获得执行权限

我想确定指定文件的当前版本或任何指定版本是否具有执行权限

(背景:我有一个包装器脚本,它使用

git show $commit:./$filename > ./$filename.$commit
我想在新文件上运行
chmod+x
,当且仅当该版本的文件在存储库中可执行时。)

使用,传递要检查的引用和文件路径

例如,
git ls tree HEAD foo.txt
将给出如下内容

100644 blob 3e1d68d0714fd3d46ec22a685e317f0cf47f5e83    foo.txt
第一列中的644表示不可执行文件。755表示一个可执行文件