【问题标题】:git status is not showing my changed filesgit status 没有显示我更改的文件
【发布时间】: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

如何跟踪这个文件?

【问题讨论】:

  • 我真的不明白这个问题......

标签: node.js git github node-modules


【解决方案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 文件提交到您的存储库中,以便与克隆存储库的任何其他用户共享忽略规则。

        【讨论】:

          猜你喜欢
          • 2013-01-11
          • 1970-01-01
          • 1970-01-01
          • 2013-04-24
          • 2010-10-17
          • 2015-06-08
          • 2015-11-02
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多