git status 没有显示我更改的文件

Posted

技术标签:

【中文标题】git status 没有显示我更改的文件【英文标题】:git status is not showing my changed files 【发布时间】:2019-04-14 11:29:21 【问题描述】:

我有一个 Node.js 项目并导入了一些 Node 模块。 git_status 命令显示了我在项目中更改的文件。我还更改了node_modules 目录下的一些文件,但未显示这些文件。 node_modules 目录显示为未跟踪。

Untracked files:
  (use "git add <file>..." to include in what will be committed)

node_modules/
src/js/main-release-paths.json

我只更改了node_modules中的一个文件:

node_modules/@oracle/grunt-oraclejet/node_modules/@oracle/oraclejet-tooling/lib/serve/connect.js

如何跟踪这个文件?

【问题讨论】:

我真的不明白这个问题...... 【参考方案1】:

您不应该将 node_modules 文件夹添加到 git,然后通过 npm 命令对其进行管理。所以删除该文件夹并使用npm install 命令。

当您在该文件夹中添加某些内容时,如果您首先添加了一些文件,它会显示为已更改。所以我跳那个文件夹在你的.gitignore 文件中并被忽略。你应该检查一下。

【讨论】:

【参考方案2】:

假设你有 git repo,请检查你项目中的 .gitignore 文件。 .gitignore 中的条目将被 Git 忽略,并且不会在您执行 git add 时显示。

【讨论】:

... 但是提问者确实在 git status 中看到了它,所以它显然没有被忽略。【参考方案3】:

添加要跟踪的文件

这很可能不是一种合适的方法(请阅读下文)。但是,如果你真的想这样做:

为了跟踪嵌套在node_modules 下的文件,您应该使用add 目录。它的所有内容都会在git中上演

git add node_modules

推荐方法

您可能不想跟踪node_modules 目录的内容,因为:

运行 npm install 将清除您的更改 成百上千个文件可能最终会出现在该目录中 在 git 中跟踪 package.jsonpackage-lock.json 就足够了,然后使用 npm install 命令填充 node_modules。

您不应该直接修改位于node_modules 目录中的文件。相反,fork 有问题的模块,修改它,然后:

在 npm 中发布您自己的版本 或将其作为 package.json 中的 git 存储库引用 (how-to)

然后,还要将node_modules 目录添加到.gitignore 文件中。

【讨论】:

【参考方案4】:

如果整个目录未被跟踪,git status 将只显示该目录。因为它是未跟踪的,所以 git 在其中更改和未更改的文件之间没有有意义的区别。

其他答案已经解决了跟踪node_modules 不是一个好主意。如果您想跟踪对模块的更改,请考虑克隆模块 repo 并将其包含为 git 子模块。

【讨论】:

【参考方案5】:

它应该在 .gitignore 文件中。应将 .gitignore 文件提交到您的存储库中,以便与克隆存储库的任何其他用户共享忽略规则。

【讨论】:

以上是关于git status 没有显示我更改的文件的主要内容,如果未能解决你的问题,请参考以下文章

Git status - 有没有办法只在特定目录中显示更改?

让 git status 显示未修改/未更改的跟踪文件?

新的 git clone 显示更改的文件

Git 将文件列为已更改但没有更改

在 Posh-Git 中更改“git status”输出颜色

git stash `没有本地更改`,但 git status `提前 3 次提交`