首页 > 解决方案 > 是否有用于获取文件夹中文件的文件最后修改日期的 TFS Git API?

问题描述

我正在使用 TFS Git API 以编程方式从我的 Git 存储库中读取数据。

我的要求是我需要能够从 git 存储库中获取一个文件夹并列出其中的所有文件及其最后修改的时间戳。

我正在使用 items api,并且可以通过以下请求获取文件夹中的项目:

https://docs.microsoft.com/en-us/rest/api/azure/devops/git/items/list?view=azure-devops-rest-5.1

例如:

GET https://dev.azure.com/fabrikam/_apis/git/repositories/278d5cd2-584d-4b63-824a-2ba458937249/items?scopePath=/MyWebSite/MyWebSite/Views&recursionLevel=Full&includeContentMetadata=true&api-version=5.1

这能够获取项目 URL,但无法包含时间戳。

所以我不认为这个api会起作用。

为了获取这些信息,我需要调用其他一些 api 吗?

标签: gitapitfs

解决方案


我没有看到有 REST API 可以返回时间戳。相反,您可以将 repo 克隆到本地,并使用以下命令输出时间戳:

git log -1 --pretty="format:%ci" -- path

要输出带有时间戳的所有文件,请尝试以下脚本:

git ls-tree -r --name-only HEAD | while read filename; do
  echo "$(git log -1 --format="%ci" -- $filename) $filename"
done

更多示例,请查看案例https://serverfault.com/questions/401437/how-to-retrieve-the-last-modification-date-of-all-files-in-a-git-repository


推荐阅读