GitHub API - 如何确定文件是否实际上是符号链接?

akn*_*ds1 5 rest github github-api

通过 GitHub API 查询符号链接时,如果符号链接指向文件而不是目录,我会得到不同的结果。后者的表现更好,因为它"type": "symlink"作为 JSON 的一部分返回,而前者返回"type": "file". 示例文件符号链接,示例目录符号链接

当符号链接将自己宣传为文件时,这是非常令人困惑的,因为 GET-ing 其下载 URL 只会为您提供符号链接的目标,而不是文件内容

如何判断文件实际上是符号链接,而不是真实文件?

另外,为文件符号链接返回类型“file”的行为是一个彻头彻尾的错误吗?这看起来不太对劲。

Edw*_*son 0

Git 中的符号链接并不关心目标是文件还是目录。(或者即使目标存在。)

API返回符号链接的“文件” 有问题的文件不是符号链接。这是一个普通文件。克隆存储库后:

% ls -Flas muzhack/files/littleBitsMidiNotes.ino
4 -rw-r--r--  1 user  group  3247 Jun  7 12:00 muzhack/files/littleBitsMidiNotes.ino

% git ls-files --stage muzhack/files/littleBitsMidiNotes.ino
100644 08918243048ae4a4f57e69a34776e9a0bd1ec7af 0   muzhack/files/littleBitsMidiNotes.ino
Run Code Online (Sandbox Code Playgroud)

模式100644(由 返回的第一个字段ls-files)表示这是一个常规文件。相反,GitHub 报告为符号链接的条目实际上是一个符号链接:

% ls -Flas muzhack/files/adapter-board-files 
4 lrwxr-xr-x  1 user  group  25 Jun  7 12:00 muzhack/files/adapter-board-files@ -> ../../adapter-board-files

% git ls-files --stage muzhack/files/adapter-board-files
120000 ef17a5e7b4bef4e51f19dc6b4c360c95cbb223c8 0   muzhack/files/adapter-board-files
Run Code Online (Sandbox Code Playgroud)

因此 GitHub API 似乎正确地报告了此信息。