如何使git忽略目录的所有内容?

我有一个git目录,其中包含一堆文件,然后有一个名为“会话”的目录。 “会话”包含我的web.py程序的cookie信息。

我需要将文件夹“ sessions”保留在git存储库中,因为没有该文件夹,程序将无法正常运行。 我不需要将文件夹的实际内容存储在git目录中。

所以问题是:

我怎样才能让git忽略文件夹的内容,而不是文件夹本身?

Tabitha asked 2020-01-14T03:04:32Z
3个解决方案
59 votes

使用添加会话/.gitignore文件

*
!.gitignore

第二行告诉git不要忽略.gitignore文件,因此该文件夹不是空的,但其他所有内容都将被忽略。

Mathias V answered 2020-01-14T03:05:15Z
51 votes

如果我没记错的话,可以通过在sessions文件夹中创建.gitignore文件并将其内容作为[^.]*来实现。

ceejayoz answered 2020-01-14T03:04:51Z
3 votes

自2007年7月以来,gitignore确实描述了排除模式。

如果该模式以斜杠结尾,则出于以下描述的目的将其删除,但它只会找到与目录匹配的内容。

换句话说,foo /将匹配目录foo及其下的路径,但不匹配常规文件或符号链接foo(这与git中pathspec的工作方式一致)。

如该线程所示,该模式并不总是用“ /”表示匹配目录。

VonC answered 2020-01-14T03:05:49Z
translate from https://stackoverflow.com:/questions/482309/how-do-you-get-git-to-ignore-all-contents-of-a-directory