Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.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 commit中的文件是否是符号链接而不签出_Linux_Git_Github_Gerrit - Fatal编程技术网

Linux 如何检查git commit中的文件是否是符号链接而不签出

Linux 如何检查git commit中的文件是否是符号链接而不签出,linux,git,github,gerrit,Linux,Git,Github,Gerrit,有没有一种方法可以在不检查提交内容的情况下检查git commit中的文件是否是符号链接 背景: 有一个钩子用来检查在推导出的每个Git提交中的C++代码格式。 到目前为止,算法是: 使用git diff树获取提交中的文件列表--无提交id--仅限名称--diff filter=d-r${commit} 使用git show${commit}:${file}处理git commit中基于文件扩展名选择的每个文件(内容) 问题: 扩展名为.cpp的文件可能是符号链接,在这种情况下,不应对其进行处理

有没有一种方法可以在不检查提交内容的情况下检查git commit中的文件是否是符号链接

背景:
有一个钩子用来检查在推导出的每个Git提交中的C++代码格式。 到目前为止,算法是:
使用
git diff树获取提交中的文件列表--无提交id--仅限名称--diff filter=d-r${commit}

使用
git show${commit}:${file}
处理git commit中基于文件扩展名选择的每个文件(内容)

问题:
扩展名为
.cpp
的文件可能是符号链接,在这种情况下,不应对其进行处理


注意:我知道将源文件作为符号链接不是一个好主意。

如果在文件列表上运行命令“file”,它将返回文件是否以符号方式链接的详细信息。@ramansailpal您不能在未签出提交的对象上运行
file
git ls tree commit-ID路径到/file
,并查找第一列(模式);符号链接具有模式
120000
。参见模式: