问题标签 [git-describe]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
239 浏览

git - 为什么`git describe`显示“警告:标签'xxx'在外部称为'refs/tags/xxx'”?

我正在尝试使用git describe检索当前分支的最新标签名称,但我在输出中遇到了意外警告。

如前所述,本地标签没有refs/tags前缀:

但是,我不确定为什么会收到警告或我能做些什么。

标签没有被删除和重新创建,也没有被重命名。

标签是从我们的构建环境 (Jenkins) 创建的。

我可以做些什么来纠正或解决警告吗?

编辑:

我们创建标签的 Jenkins 构建使用 jgit。签出分支/代码的配置如下: 詹金斯 git 结帐

使用 Git Publisher 创建标签: 詹金斯 git 标签

0 投票
1 回答
68 浏览

git - 为什么 git describe 挑选出它所做的标签

我正在为我正在为其工作的公司开发一个内部 Web 应用程序。它托管在一个私有的 github 存储库上,但我的大部分开发工作都是在家里的 linux 桌面上完成的,为此的 Web 服务器托管在公司办公室的一个小型树莓派上。它本质上是 nginx 前端将 /api url 代理到 pm2 支持的 nodejs 应用程序。

git push我从我家通过 ing 到 github 存储库并git pull在服务器中配置生产分支来进行部署。一个git hook post-commit脚本在临时停止生产 api 服务器之前在构建目录中运行 npm install,复制 node_modules 目录并运行一个脚本,该脚本本质上git describe --abbrev=0 --tags是获取版本号并将其存储在一个.env文件中,以便生产服务器向其宣布其版本客户。

如果我在家里运行 git describe 它会给出版v4.2.2本,但在诊所我得到了v4.1.17,我不明白为什么

在下图中,左侧部分是gitk --all我的家庭存储库中的输出,并且在诊所中只有终端访问权限,您可以从右侧部分看到几乎相同的图表使用git log- 缺少与任何一个都不相关的提交masterproduction分支。v4.2.2 只有两次提交,而 v4.1.17 至少有 10 次。

为什么 git describe 的行为方式是这样的?

编辑:我有点知道答案 - 在服务器上有一个提交后挂钩最终在分支上进行提交,即使它不应该 - 它只应该在开发机器上进行.

来自我的 git repo 的复合 gitk 图