Git如何表示文件是符号链接?

Git如何表示文件是符号链接?,git,Git,我正在编写一个实用程序,它需要能够通过编程检测Git树中的特定blob是否是符号链接 假设我在Git回购中创建了一个符号链接: > echo target > target > ln -s target link > git add target link > git commit -m "Add target and link" 如何从Git内部判断文件链接是一个符号链接?“git show”仅显示目标的路径: > git show HEAD:link t

我正在编写一个实用程序,它需要能够通过编程检测Git树中的特定blob是否是符号链接

假设我在Git回购中创建了一个符号链接:

> echo target > target
> ln -s target link
> git add target link
> git commit -m "Add target and link"
如何从Git内部判断文件链接是一个符号链接?“git show”仅显示目标的路径:

> git show HEAD:link
target
我可以使用git ls tree,但它非常笨重:

> git ls-tree HEAD:
120000 blob 1de565933b05f74c75ff9a6520af5f9f8a5a2f1d    link
100644 blob eb5a316cbd195d26e3f768c7dd8e1b47299e17f8    target

这里,模式120000表示符号链接。但是,肯定有一种更优雅的方法可以在Git中检测文件是符号链接吗?

我认为这就是除了在其周围创建
Git is symlink
包装器或其他什么之外,您可以做的所有事情了。您必须使用
Git
命令来完成这项工作吗?如何检查文件本身的状态(
如果[-h link];那么…;fi
)不符合您的要求?@KeithThompson我希望能够在不重置git的情况下检查状态。