无法让 git 停止跟踪 package-lock.json

问题描述 投票:0回答:2

使用 npm v5,现在

package-lock.json
文件是在
npm install

之后创建的

建议提交此文件,但我遇到的问题是,由于某种原因,我的开发计算机和服务器之间的文件不同。即使我将该文件推送到存储库,在服务器上的

npm install
之后,文件也会发生变化。

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

npm install
之后,它出现在
modified
文件。

文件位于

.gitignore
中,但服务器 git 由于某种原因忽略了它。

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

可能相关的信息:

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

node.js git npm
2个回答
105
投票

您需要将其从存储库中删除 (

git rm package-lock.json
),以便 git 停止跟踪它。

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


11
投票
  • 要停止跟踪它,请将文件添加到
    .gitignore
    (您已经这样做了)
  • 要将其从存储库中删除而不删除文件,请调用
    git rm --cached package-lock.json
  • 调用
    git status
    可以看到该文件被标记为已删除,并且该文件没有被列为
    untracked
    (因为它被gitignored),但它仍然存在

提交更改并根据需要推送。

但正如OP所指出的,建议提交此文件。除非你陷入困境,也许想想为什么要从仓库中删除它。

© www.soinside.com 2019 - 2024. All rights reserved.