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

13
如果我在 git 代码库中有一个文件,我如何确定给定版本的文件是否可执行?
我知道 git 跟踪文件是否可执行,而 git show 将显示执行权限的更改。例如,给定修订版本的 git show 输出可能包括:
diff --git file file
old mode 100644
new mode 100755

这表示文件已获取执行权限。

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

(背景:我有一个包装脚本,可以使用它从指定版本中提取文件。)

git show $commit:./$filename > ./$filename.$commit

如果仓库中的文件版本可执行,则我想对新文件运行chmod +x

1个回答

25

使用git ls-tree,传入您要检查的引用和文件路径。

例如,git ls-tree HEAD foo.txt将返回如下结果:

100644 blob 3e1d68d0714fd3d46ec22a685e317f0cf47f5e83    foo.txt

第一列中的644表示非可执行文件,755表示可执行文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接