为什么 git 忽略我的 /bower_components 文件夹?

Hop*_*ppe 0 git gitignore bower

为什么 git 忽略我的 /bower_components 文件夹?它将提交 /bower_components/bootstrap,但不会提交任何文件夹内容或 Bower_components 中的任何其他文件夹。

git add --all
git commit -m "adding bootstrap"
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean

git clean -ndX                                 
Would remove App_Data/packages/NoGit.0.0.8/node_modules/nogit/node_modules/globa
l-tunnel/node_modules/                     

dir bower_components
Volume in drive C is BOOTCAMP
Volume Serial Number is 28B2-7D02

Directory of c:\Projects\Blog6\Publish\Latest\bower_components

10/31/2014  10:00 PM    <DIR>          .
10/31/2014  10:00 PM    <DIR>          ..
10/31/2014  10:00 PM    <DIR>          angular
10/31/2014  10:00 PM    <DIR>          angular-route
10/31/2014  10:46 PM    <DIR>          bootstrap
...
Run Code Online (Sandbox Code Playgroud)

我创建了自己的 .gitignore 文件,只是为了看看它是否有助于解决问题。但事实并非如此。

# Compiled source # 
###################
*.com
*.pdb

# Packages #   
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip

# Logs and databases #
######################
*.log
*.sql
*.sqlite

# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
Run Code Online (Sandbox Code Playgroud)

Ida*_*rye 5

我将大胆猜测,除了 之外bootstrap,下面的文件夹bower_components中都没有任何文件(即使您进入它们的子文件夹 - 您只会找到其他文件夹,没有文件)。

Git 无法跟踪文件夹 - 只能跟踪文件。项目的文件夹结构源自它跟踪的文件 - 因此,如果它跟踪一个名为的文件,foo/bar它就知道创建foo目录,以便可以将其放入bar其中,但如果foo为空,Git 就会忽略它。

如果您有一些空目录,无论出于何种原因,这些目录必须是存储库的一部分,惯例是.gitkeep在其中放置一个名为的空文件。