在没有干净的 git 工作目录的情况下更新 package.json 中的版本(没有像 Gulp 这样的任务运行器)

Rem*_*emi 10 npm

运行时:npm version prepatch我收到错误:“Git 工作目录不干净。” 然后是尚未提交的文件列表。

但是,我想做这个预发布以使用私有 npm 注册表在本地测试一些东西。这意味着我不必使用 Git 提交文件。

是否可以在没有干净的 git 工作目录的情况下更新 package.json 中的版本?

Phi*_*ard 25

https://docs.npmjs.com/cli/version 上的 npm 版本文档:

如果在 git repo 中运行,它还会创建一个版本提交和标记。此行为由 git-tag-version(见下文)控制,并且可以通过运行 npm --no-git-tag-version version 在命令行上禁用。如果工作目录不干净,它将失败,除非设置了 -f 或 --force 标志。

我不能 100% 确定您是否只需要 --no-git-tag-version,或者您是否还需要 --force 标志。

  • 只需在执行“npm version”时指定“--no-git-tag-version”即可避免此错误。 (10认同)

Lea*_*ner 16

该错误是因为您位于 git 存储库中并且存在未提交的更改。
您可以使用git stash

例如

git stash 
npm version patch 
git stash pop
Run Code Online (Sandbox Code Playgroud)

这将暂时重置您的工作目录(删除未提交的更改)。然后就可以运行了npm version {major|minor|patch}。之后,使用git stash pop会将您未提交的更改重新应用到您的工作目录。

教程:https ://www.atlassian.com/git/tutorials/ saving-changes/git-stash#stashing-your-work