Git和空文件夹

由于众所周知, Git不知道任何文件夹,而只知道文件,因此空文件夹结构不会最终出现在存储库中。 但是,由于许多框架和项目绝对需要它们,因此它们应该就此结束。 一种常见的做法是创建隐式指定文件夹结构的所谓占位符文件(通常称为.gitkeep)。 这些文件可以轻松创建,并且,如果需要,还可以确保忽略文件夹中的其他文件。


首先,我们创建一个测试存储库并创建一些子文件夹:

434e6616f335599d241482f169f68f1b

现在,我们具有以下文件夹结构:

434e6616f335599d241482f169f68f1b

git status -u不会显示预期的变化:

Git和空文件夹

现在,我们使用find在所有必需的位置创建占位符文件:

434e6616f335599d241482f169f68f1b

现在,我们收到以下文件夹/文件结构:

434e6616f335599d241482f169f68f1b

git status -u现在向我们显示所有文件夹(隐式)都位于存储库中:

Git和空文件夹

如果要确保文件夹结构始终以存储库结尾,而不是所有文件(占位符文件除外),请创建一个gitignore:

434e6616f335599d241482f169f68f1b

我们使用双星语法

434e6616f335599d241482f169f68f1b

第一行递归地忽略“ foo”文件夹中的所有文件和文件夹(任何级别),第二行从该规则中递归地排除所有文件夹(任何级别),第三行排除所有.gitkeep文件(任何级别) 。

现在我们创建一些测试文件:

434e6616f335599d241482f169f68f1b

git status -u现在向我们显示了所需的结果:

Git和空文件夹

背部