【问题标题】:Why does git ignore node_modules folder by default?为什么 git 默认忽略 node_modules 文件夹?
【发布时间】:2020-10-25 02:41:46
【问题描述】:

我创建了一个 Angular 项目并将其推送到我的 github 存储库中。

当我查看推送的文件时,node_modules 文件夹丢失了,我没有在任何地方声明忽略此文件夹,这是默认行为吗?如果是,那为什么?

此外,当我决定删除 github 上的所有存储库并仅创建一个存储库时,我将在其中签入所有项目,一旦初始化 git init 并推送更改,git 开始推送所有项目的 node_modules 文件夹和花了很多时间。

是什么让git 自己忽略或不忽略node_modules 文件夹?我自己没有在任何地方设置此配置。

谢谢。

【问题讨论】:

  • Angular cli 添加了一个 gitignore 文件,其中列出了 node_modules。这里没有魔法。
  • @Royson 即使我已经在文件夹中初始化了 git,它是否也会添加 gitignore 文件?为什么我初始化一个简单目录时没有添加gitignore文件?因为我不在 Angular 项目中?
  • 根据您的 Angular 项目的大小,node_modules 将占用磁盘空间,因此,Angular 在您的 .gitignore 中包含 node_modules
  • @Jaguar-515 Angular 在什么阶段创建 .gitignore 文件?什么时候创建项目?
  • @MuhammadFaraz 我相信它是在ng new 期间创建的?

标签: angular git github node-modules gitignore


【解决方案1】:

git 默认不忽略node_modules。默认情况下它不会忽略任何内容。 angular cli 将node_modules 添加到.gitignore,导致git 忽略它。有关更多信息,请参阅 https://stackoverflow.com/a/37187110/5666087,并参阅 angular cli 的 github 存储库以获取 specific .gitignore file added。您会看到/node_modules 列在那里。

您不应该对node_modules 进行版本控制,因为这些是您可以通过npm installyarn install 轻松获得的工件。

在 Angular 项目之外(例如,在新目录中)创建 git 存储库不会添加 .gitignore 文件,因此不会忽略 node_modules

【讨论】:

    【解决方案2】:

    您是否使用angular-cli 生成了angular 项目?

    如果是,则在生成项目时它会自动生成一个.gitignore 文件以忽略node_modules

    git 只会忽略文件夹,或者只有在.gitignore 文件中设置了文件时才会忽略该文件。 在您的情况下,它已经在为您生成的.gitigore 文件angular-cli 中自动完成。

    【讨论】:

      【解决方案3】:

      Angular CLI 在项目的根目录中生成一个文件,您可以在其中打开名为 .gitignore 的 Angular 项目。

      这是默认工作区配置文件之一,当您使用 ng new cli 命令创建项目时,angular cli 会自动生成。此文件的目的是存储故意未跟踪的文件,GIT 应忽略

      你可以将所有这些你想在git中忽略的文件夹/文件的路径放在这个文件中。它的内容默认是这样的..

      projectname/dist/
      projectname/node_modules/
      

      distnode_modules 文件夹默认放置在其中。您可以在此文件中添加要放入忽略列表的任何文件夹/文件名。

      谢谢。

      【讨论】:

        猜你喜欢
        • 2020-12-10
        • 2015-07-01
        • 2015-04-20
        • 2015-02-17
        • 2015-04-13
        • 2016-11-13
        • 2020-05-28
        • 2016-04-09
        • 1970-01-01
        相关资源
        最近更新 更多