Gitignore文件不';I don’我不想工作

Gitignore文件不';I don’我不想工作,git,Git,我排除了node_模块中的所有文件,除了一些文件。所以我在git ignore文件中编写了如下代码 node_modules/angular/angular.js !node_modules/angularfire/dist/angularfire.js !node_modules/todomvc-app-css/index.css !node_modules/todomvc-common/base.css !node_modules/todomvc-common/base.js no

我排除了node_模块中的所有文件,除了一些文件。所以我在git ignore文件中编写了如下代码

node_modules/angular/angular.js
!node_modules/angularfire/dist/angularfire.js
!node_modules/todomvc-app-css/index.css
!node_modules/todomvc-common/base.css
!node_modules/todomvc-common/base.js    

node_modules/
但它不起作用。如何解决此问题?

正如我在“”中详细介绍的那样,
主要有一条规则需要记住。gitignore


:除非满足git 2.7+中的某些条件)

这意味着,当您排除所有内容(“
node\u modules/
”)时,必须先将文件夹列为白名单,然后才能将文件列为白名单

# Ignore everything under node_modules
node_modules/*

# Exceptions the subfolders
!node_modules/**/

# Exceptions the files (since the parent folders are not ignored)
!node_modules/angularfire/dist/angularfire.js
!node_modules/todomvc-app-css/index.css
!node_modules/todomvc-common/base.css
!node_modules/todomvc-common/base.js 
正如我在“”中详细介绍的,使用
.gitignore
主要要记住一条规则:


:除非满足git 2.7+中的某些条件)

这意味着,当您排除所有内容(“
node\u modules/
”)时,必须先将文件夹列为白名单,然后才能将文件列为白名单

# Ignore everything under node_modules
node_modules/*

# Exceptions the subfolders
!node_modules/**/

# Exceptions the files (since the parent folders are not ignored)
!node_modules/angularfire/dist/angularfire.js
!node_modules/todomvc-app-css/index.css
!node_modules/todomvc-common/base.css
!node_modules/todomvc-common/base.js 

我认为这里的问题是,在排除一些文件后,您排除了完整的node_modules文件夹,这可能会覆盖以前的包含/排除。这意味着一开始你说你想在node_modules文件夹中包含和排除一些文件,但后来你只告诉git“好吧,不管怎样,忽略整个文件夹”。因此,扭转订单可能是一个良好的开端

但我们可能还没有完成。此外,当您排除整个文件夹而不是文件时,如果要排除这些文件,git将无法找到其中的任何文件。假设您忽略了文件夹节点_modules,但希望在此之后排除其中的一些文件。它可能不会工作,因为没有文件夹来检查这些文件了。这个文件夹实际上被忽略了

因此,您可以尝试忽略文件夹中的所有文件,然后对这些文件进行一些排除

# ignore all files in the folder
node_modules/**/*

# but not those files
!node_modules/angularfire/dist/angularfire.js
!node_modules/todomvc-app-css/index.css
!node_modules/todomvc-common/base.css
!node_modules/todomvc-common/base.js 

希望这能起作用。

我认为这里的问题是,在排除了一些文件后,您排除了完整的node\u modules文件夹,这可能会覆盖以前的包含/排除。这意味着一开始你说你想在node_modules文件夹中包含和排除一些文件,但后来你只告诉git“好吧,不管怎样,忽略整个文件夹”。因此,扭转订单可能是一个良好的开端

但我们可能还没有完成。此外,当您排除整个文件夹而不是文件时,如果要排除这些文件,git将无法找到其中的任何文件。假设您忽略了文件夹节点_modules,但希望在此之后排除其中的一些文件。它可能不会工作,因为没有文件夹来检查这些文件了。这个文件夹实际上被忽略了

因此,您可以尝试忽略文件夹中的所有文件,然后对这些文件进行一些排除

# ignore all files in the folder
node_modules/**/*

# but not those files
!node_modules/angularfire/dist/angularfire.js
!node_modules/todomvc-app-css/index.css
!node_modules/todomvc-common/base.css
!node_modules/todomvc-common/base.js 
希望这能起作用。

请澄清“不起作用”:展示你的行为,并说出你的预期。我的猜测是你必须把!规则在其他规则之后。请澄清“不起作用”:展示你获得的行为,并说出你期望的。我的猜测是你必须把!规则排在其他规则之后。