【问题标题】:Can't make git stop tracking package-lock.json无法让 git 停止跟踪 package-lock.json
【发布时间】:2022-01-05 18:59:26
【问题描述】:

现在使用 npm v5,package-lock.json 文件是在 npm install 之后创建的

建议提交此文件,但我的问题是,由于某种原因,我的开发机器和服务器之间的此文件不同。即使我将该文件推送到 repo,在服务器上 npm install 之后,文件也会更改。

所以现在我试图让 git 取消跟踪这个文件。在遵循其他问题的众多答案之后,我似乎几乎设法做到了,它没有在开发机器上跟踪,也没有出现在回购本身中,但是在我将代码拉到服务器并制作 npm install 之后,它出现在modified 文件。

文件在.gitignore,但服务器 git 出于某种原因忽略了它。

git check-ignore -v -n package-lock.json
:: package-lock.json
git check-ignore -v -n --no-index package-lock.json
.gitignore:10:package-lock.json package-lock.json 

可能的相关信息:

开发机器:Windows 10。 服务器:Ubuntu 14.04。 我正在使用标签将代码拉到服务器。

【问题讨论】:

  • 您确定您已尝试使用git rm [FILENAME] -f,然后将文件添加到您的.gitignore,如/[FILE_PATH_RELATIVE_TO_REPO]?提交后,它不应再出现。
  • “这个文件在我的开发机器和我的服务器之间由于某种原因不同” -- package-lock.jsonnpm updatenpm 命令更新修改package.json。您应该只在开发机器上运行这些命令。在生产服务器上运行的唯一命令是npm install

标签: node.js git npm


【解决方案1】:

您需要将其从您的存储库 (git rm package-lock.json) 中删除,以便 git 停止跟踪它。

.gitignore 仅适用于未跟踪的文件。如果您的 .gitignore 中有一个跟踪文件,则该文件被跟踪的事实会覆盖它也在 .gitignore 中的事实。

【讨论】:

  • 是的,确实如此。我之前已经这样做了,推送更改并合并到 master。但不知何故,我设法拉上了服务器早期版本,我的印象是它不起作用。现在再次重新检查所有内容,发现了我的这个错误,拉出了最新版本,瞧!谢谢。
  • 很好用。如果您的 repo 中已经有任何文件,那么您希望 git 不跟踪它。你必须先从回购中永久删除它。通过上述命令执行此操作并推送到远程分支。下次如果有人创建此文件,如果它在 .gitignore 中,则不会被跟踪。
【解决方案2】:

运行git rm package-lock.json这将停止跟踪

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-04
    • 2019-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多