7

如果依赖项中未指定分支,npm是否总是从主分支中提取?如果我有另一个分支,比如说develop我在那里标记提交怎么办?我知道npm将从特定分支更新,如果写成这样

"private-repo": "git+ssh://git@github.com:myaccount/myprivate.git#develop"

但是如果我想从那个分支中提取一个特定的标签呢?因为只是指定标签,比如

"private-repo": "git+ssh://git@github.com:myaccount/myprivate.git#v1.0.1"

没有工作(master分支没有标记的提交。只是develop分支有它)。I got a fatal: ambiguous argument 'v1.0.1': unknown revision or path not in the working tree.这让我想到它试图在没有它的分支中找到指定的标签(它必须是master分支,因为我只有这两个分支)。

那么,有没有办法同时指定要更新的分支和 git-tag?

4

1 回答 1

1

分支和标签之间没有任何直接联系。在某种程度上,标签只是提交时不会移动的分支。

您应该能够检出(或 npm 安装)您引用的任何分支或任何标签(或任何提交参考)。

它看起来v1.0.1不是您的存储库的标签(既不是分支)。如果您想要选择正确版本的semversemver: ,则必须在其前面加上.

看一下关于包依赖的 npm 官方文档。它解释了使用 git 存储库作为包源的所有方法:

<protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish> | #semver:<semver>]
git+ssh://git@github.com:npm/cli.git#v1.0.27
git+ssh://git@github.com:npm/cli#semver:^5.0
git+https://isaacs@github.com/npm/cli.git
git://github.com/npm/cli.git#v1.0.27
于 2019-01-29T22:26:13.430 回答