我正在处理 Mocha 的 git pull 请求。
我遇到了一个与我的 package-lock.json 文件相关的错误,我不小心将 ansi-regex 包从 2.1.1 更新到了 3.0.0
我现在在将此版本恢复为原始版本时遇到问题,这是回购所有者要求的。
我遇到的主要问题是这个 npm 包只存在于 package-lock 中
"ansi-regex": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
},
Run Code Online (Sandbox Code Playgroud)
它不存在于主 package.json 文件中。
通过研究,我发现不建议删除 package-lock 文件并使用 npm i 重新生成它,因为这可能会引入更多更改。
我也试过命令:
git checkout --theirs package-lock.json
git add package-lock.json
Run Code Online (Sandbox Code Playgroud)
但是版本还是3.0.0
我也试过运行
npm uninstall --save ansi-regex@3.0.0 -package-lock.json
Run Code Online (Sandbox Code Playgroud)
手动删除文件,但命令完成时不删除任何包。
我不确定如何将这个版本恢复到 repo 所有者的一个设置,并且真的可以使用一些帮助来确定下一步。
谢谢
您需要在修改之前找到提交的 ID package-lock.json
,并package-lock.json
从该提交中恢复其内容。
使用命令行(git-bash
例如打开):
您可以查看package-lock.json
使用以下命令修改的提交列表:
git log package-lock.json
Run Code Online (Sandbox Code Playgroud)您可以使用以下命令package-lock.json
在提交中设置回其版本[ID]
:
git checkout [ID] -- package-lock.json
Run Code Online (Sandbox Code Playgroud)您可以从图形客户端执行相同的操作,只需确保从过去的提交中选择文件并仅检出该文件,而不是检出整个提交。