Git和空文件夹

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


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

434e6616f335599d241482f169f68f1b

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

434e6616f335599d241482f169f68f1b

不出所料, git状态-u显示我们没有任何变化:

Git和空文件夹

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

434e6616f335599d241482f169f68f1b

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

434e6616f335599d241482f169f68f1b

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

Git和空文件夹

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

434e6616f335599d241482f169f68f1b

我们利用 双星语法:

434e6616f335599d241482f169f68f1b

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

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

434e6616f335599d241482f169f68f1b

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

Git和空文件夹

背部