Cro*_*rog 6 git github git-clone github-actions
我在 CI 自动化工作流程期间读取 git 存储库的标签时遇到问题。我不想创建完整克隆,因为这会产生大量开销,因此更愿意维护“浅克隆”,但以某种方式确定应用程序版本控制的标签。
使用案例
git clone ... --depth=1。git describe --tags版本信息嵌入到已编译的应用程序中预期结果
对于完整克隆,标签将报告如下:
> git describe --tags
v0.5.0-95-g7bbc323
Run Code Online (Sandbox Code Playgroud)
实际结果
CI 下的浅克隆的工作原理不一样:
> git describe --tags
fatal: No names found, cannot describe anything.
Run Code Online (Sandbox Code Playgroud)
解决方案思路
你不可以做这个。为了git describe工作,您必须拥有标签和它们指向的提交,并且能够向后遍历历史记录,找到历史记录中最近的标签。当您使用 进行克隆时--depth=1,您仅克隆了一个提交,因此无法进行遍历。
但是,您可以进行部分克隆,--filter=tree:0然后您将只有标签和提交,直到您进行签出为止,此时将从服务器填充仅用于该提交的 blob 和树。但是,我不确定 GitHub Actions 是否原生支持此操作,因此您可能必须自己执行此操作。
| 归档时间: |
|
| 查看次数: |
4560 次 |
| 最近记录: |