0

我正在尝试使用Git-Describe npm 包来检索哈希信息和标签,以便稍后附加到我的应用程序中。

我已按照Git describe npm page中提供的说明进行操作。该脚本运行良好,但标记信息在此处检索为空。我还在本地和远程 git 中添加了一些标签。

我能够使用检索所有标签信息git tag -l

下面是我试图运行的脚本。

const {gitDescribe, gitDescribeSync} = require('git-describe');
 
// Another example: working directory, use 16 character commit hash abbreviation
const gitInfo = gitDescribeSync({
    customArguments: ['--abbrev=16']
});
 
// Asynchronous with promise
gitDescribe(__dirname)
    .then((gitInfo) => console.dir(gitInfo))
    .catch((err) => console.error(err));
 
// Asynchronous with node-style callback
gitDescribe(__dirname, (err, gitInfo) => {
    if (err)
        return console.error(err);
    console.dir(gitInfo);
});

节点版本.js

输出是:

{
  dirty: true,
  raw: 'f8f7e57e-dirty',
  hash: 'f8f7e57e',
  distance: null,
  tag: null,
  semver: null,
  suffix: 'f8f7e57e-dirty',
  semverString: null,
  toString: [Function]
}

这里的标签信息带有空值。但是哈希字符串是正确的。(Git 日志输出)。

commit **f8f7e57e**713b71b0f9d3181c0d19ffd (HEAD -> PF223095_US1834348_ui_gitcommit, tag: r9.0.6, origin/PF223095_US1834348_ui_gitcommit, mastere)
4

2 回答 2

0

看起来默认情况下 git-describe 只跟踪以v这样的东西开头的版本,比如v1.0.0工作和1.0.0失败。

于 2021-05-22T14:33:43.130 回答
0

正如@zxiiro 所说,默认行为是查找以v数字开头的标签(v0.9, v2.3-dev)。

0.9您可以使用 match 选项指定您自己的正则表达式,此示例将匹配以数字 ( , 2.3-dev, 99-luft-balloons)开头的标签

const gitInfo = gitDescribeSync({match: '[0-9]*'});
于 2022-02-08T15:48:31.780 回答