git - 将 package-lock.json 包改回原始 repo 版本

标签 git npm

我正在处理 Mocha 的 git pull 请求。

我遇到了与 package-lock.json 文件相关的错误,我不小心将 ansi-regex 包从 2.1.1 更新到 3.0.0

我现在在将此版本恢复为原始版本时遇到问题,这是 repo 所有者要求的。

我遇到的主要问题是这个 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="
    },

它不存在于主 package.json 文件中。

通过研究,我发现不建议删除 package-lock 文件并使用 npm i 重新生成它,因为这可能会引入更多更改。

我也试过命令:
git checkout --theirs package-lock.json
git add package-lock.json 

但是版本还是3.0.0

我也试过运行
npm uninstall --save ansi-regex@3.0.0 -package-lock.json

手动删除文件,但命令完成时不删除任​​何包。

我不确定如何让这个版本恢复到 repo 所有者的一个设置,并且真的可以使用一些帮助来确定下一步。

谢谢

最佳答案

您需要在修改之前找到提交的 ID package-lock.json ,并恢复package-lock.json的内容从那个提交。

使用命令行(例如打开 git-bash):

  • 可以查看修改过的提交列表package-lock.json使用 :
    git log package-lock.json
    
  • 您可以设置package-lock.json回到提交中的版本 [ID]使用 :
    git checkout [ID] -- package-lock.json
    

  • 您可以从图形客户端执行相同的操作,只需确保从过去的提交中选择文件并仅 check out 该文件,而不是 check out 整个提交。

    关于git - 将 package-lock.json 包改回原始 repo 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59652396/

    相关文章:

    git - 使用 Programmer's Notepad 2 作为 git 的编辑器

    git - 如何从任何地方将*所有*新的/修改过的文件添加到git? (如 `git add -A` ,或 `git commit -a` 用于新文件)

    node.js - 为什么 npm install 不能正确地从 npm 上的包的分支构建依赖项?

    javascript - 为什么我无法使用 npm 安装此模块?

    proxy - 无法删除 npm 代理

    git - 在 Visual Studio 中更改跟踪的 Git 分支

    git - 如何在大量 git 存储库中收集发布版本

    php - 无法通过 TortoiseGit 或 msysGit check out 适用于 Windows 8 的 Git 代码。适用于 Ubuntu Git。 "Submodules error"

    javascript - NPM 安装后找不到模块错误

    node.js - 使用 npm 安装 express