当 .gitignore 中未忽略 node_modules 文件夹时,为啥 Git 不会添加/提交文件?

Posted

技术标签:

【中文标题】当 .gitignore 中未忽略 node_modules 文件夹时,为啥 Git 不会添加/提交文件?【英文标题】:Why won't Git add/commit files when node_modules folder isn't ignored in .gitignore?当 .gitignore 中未忽略 node_modules 文件夹时,为什么 Git 不会添加/提交文件? 【发布时间】:2015-04-13 10:45:14 【问题描述】:

问题

当 node_modules 在 .gitignore 文件中未被忽略时,我无法使用 git 添加或提交。如果是,一切正常。

这是为什么?我不明白,它困扰着我。不上传node_modules文件夹可以吗?我使用他们的 eb cli 工具推送和部署到 Amazon Web Services。

详情

我是网络开发的新手。我将 laravel 5 与 homestead 一起使用,目前正在尝试将我的应用程序从 heroku 移动到 Amazon Web Services。

当我的 .gitignore 看起来像这样时:

/vendor
.env


# Elastic Beanstalk Files

.elasticbeanstalk/*

!.elasticbeanstalk/*.cfg.yml

!.elasticbeanstalk/*.global.yml

当我运行时它说“没有添加到提交的更改”

git add -A

然后

git commit -m "Test Message"

但是有。我在 about 文件中添加了一个测试更改。

但是如果我像这样忽略 node_modules 文件夹:

/vendor
/node_modules
.env


# Elastic Beanstalk Files

.elasticbeanstalk/*

!.elasticbeanstalk/*.cfg.yml

!.elasticbeanstalk/*.global.yml

然后再次添加并提交,更改已按应有的方式注册。

【问题讨论】:

/node_modules 文件夹中是否还有另一个 .gitignore 文件? 它有 3 个文件。 .bin、gulp 和 laravel-elixir。如果我搜索 .gitignore,它会找到 .gitignore.orig 和 .gitignore.rej 【参考方案1】:

我认为 node_modules 文件夹应该被忽略,因为 Laravel 的 github 存储库已将它列在 .gitignore 中。无论如何,其中大部分都应该由 npm 添加。

You can view it here

【讨论】:

啊,好吧。这就说得通了。我担心应用程序本身可能需要 node_modules 文件夹。

以上是关于当 .gitignore 中未忽略 node_modules 文件夹时,为啥 Git 不会添加/提交文件?的主要内容,如果未能解决你的问题,请参考以下文章

.gitignore排除(不忽略)二级以上目录下的文件或目录

Git中.gitignore的配置语法

设置git忽略文件

不忽略 db.sqlite3 文件,即使我在 django 项目的 .gitignore 中指定

IDEA创建.gitignore文件模板忽略git提交.idea等文件

git设置.gitignore文件