如何排除Git中的文件和目录?

How to exclude files and directories in Git?

我正在使用 Git 版本 2.11.0,但我不知道如何完全忽略我项目中的某些文件和目录。

在我的项目中,我有一个 /vendor 目录,里面有 if 文件和其他目录:

/vendor
/vendor/autolofile.php
/bin
/composer
/container-interop
/Demo
/psr
/zendframework
/zfcampus

现在,我已经忽略了所有 /vendor 目录及其文件和子目录。但我想排除文件 "autoload.php" 和此目录结构内的所有文件:

/vendor/Demo/library/BBDD
/vendor/Demo/library/Data
/vendor/Demo/library/File

现在,我试图只查看 /vendor/Demo/library/BBDD 中的所有文件的状态,但我没有得到我想要的。我从 git status 命令中得到了这个出口:

我的 .ignore 文件中的内容是:

.vagrant/
vendor/*
!vendor/Demo
!vendor/Demo/library
!vendor/Demo/library/BBDD
!vendor/Demo/library/BBDD/*
config/development.config.php
data/cache/*
!data/cache/.gitkeep
phpunit.xml
ubuntu-xenial-16.04-cloudimg-console.log

我做错了什么?我想在状态中查看 /vendor/Demo/library/BBDD、/vendor/Demo/library/Data 和 /vendor/Demo/library/File 中的所有文件以及 /vendor/autoload.php

中的文件

您还需要添加 !vendor/autoload.php 文件。另外,我建议您这次在 vendor 文件夹中创建另一个 .gitignore 文件,并放入以下内容:

*.*
!autoload.php
!Demo

虽然您已经从 .gitignore 模式中排除了这些文件,您仍然需要告诉 Git 通过 运行 git add vendor 来跟踪它们。然后它会开始向您显示这些文件中的差异。