Linux 如何检查git commit中的文件是否是符号链接而不签出
有没有一种方法可以在不检查提交内容的情况下检查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提交中的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
。参见模式: