git 如何只显示提交的软链接(路径,而不是名称)?

wwwo4jvm  于 2023-05-27  发布在  Git
关注(0)|答案(1)|浏览(301)

我想显示所有提交的软链接(一个路径,而不是一个名字)。我用git ls-files -s找到了解决方案,然后需要使用git cat-file -p <hash from git ls-files -s>
但它显示所有文件(包括硬链接)。我只想看到软链接。这可能吗?

bogh5gae

bogh5gae1#

是的,可以使用git ls-files和git cat-file命令结合一些其他工具来过滤和显示软链接。
您可以使用以下命令仅显示Git仓库中已提交的软链接:
git ls-files -s | awk '$2 == "120000" { print $4 }' | xargs -I {} git cat-file -p {}
下面是命令的工作方式:

  1. git ls-files -s列出了存储库中的所有文件,沿着它们的对象类型和路径。
  2. awk '$2 ==“120000”{ print $4 }'过滤输出,只选择对象类型为“120000”(对应于软链接)的行。然后打印每个软链接的路径。
  3. xargs -I {} git cat-file -p {}从上一步中获取每个路径,并使用git cat-file -p显示软链接的内容。通过运行这个命令,你应该可以看到Git仓库中所有提交的软链接的路径和内容。
    注意:Git中的软链接在git ls-files输出中由对象类型“120000”表示。

相关问题