首页 > 解决方案 > 运行表单 sh 脚本(groovy)时所有 git 命令的抛出错误?

问题描述

我正在尝试获取标记的提交哈希。从终端命令工作正常:

命令行图像

但是当我像这样从 sh 脚本运行相同的命令时:

tagged_commit = sh(returnStdout: true, script: """
                                    git rev-list -1 v1
                                    """)

它向我展示了这个错误。

在此处输入图像描述

我已经尝试了此链接上列出的所有命令: 如何判断标记在 Git 中指向哪个提交?

对于所有这些命令,它都显示相同的错误。

注意:我正在尝试从 groovy 中使用它。

标签: gitjenkins

解决方案


这是 Jenkins 问题,不是 Git 问题,也不是 groovy 问题。当 Jenkins 克隆 Git 存储库时,它通常使用浅层和/或单分支克隆,省略了很多名称,包括v1. 这样的克隆必须扩展为一个完整的——或者至少是不那么浅的——克隆,或者最初作为一个完整的克隆。

我使用过但从未实际管理过Jenkins,而且我可以在 Jenkins 上找到的文档总是严重不足,所以我不知道如何控制初始克隆。如有必要,请参阅有关如何将浅克隆转换为完整克隆的现有 SO 帖子。


推荐阅读