【问题标题】:change package-lock.json package back to original repo version将 package-lock.json 包更改回原始 repo 版本
【发布时间】:2020-04-26 09:00:27
【问题描述】:

我正在处理 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="
    },

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

通过研究,我发现不建议删除包锁定文件并使用 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

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

我不确定如何将此版本恢复到回购所有者的一个设置,并且确实可以使用一些帮助来确定后续步骤。

谢谢

【问题讨论】:

    标签: git npm


    【解决方案1】:

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


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

    • 您可以使用以下命令查看修改package-lock.json 的提交列表:

      git log package-lock.json
      
    • 您可以在提交[ID] 中使用:

      package-lock.json 设置回其版本:
      git checkout [ID] -- package-lock.json
      

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

    【讨论】:

    • 我本来打算自己回来回答这个问题的。发布此内容后,我进行了更多研究并找到了此答案:@ 987654321@他们所说的与您的建议相似,因此如果将来有人来搜索此内容,我会将其设为正确谢谢您的详细回复!
    【解决方案2】:

    更简单的方法是打开源项目并切换到您将与您的分支进行比较的分支。 (说“主要”)。 然后,只需复制 package-lock.json 的全部内容并将其粘贴到您的分支中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-13
      • 1970-01-01
      • 2018-12-07
      • 2022-09-26
      • 2020-09-24
      • 2022-01-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多