如何让 git 只跟踪与软件相关的目录,而不跟踪用户生成的内容?

How can I tell git to track only software-related directories, and not user-generated content?

我目前正在开发一个用户生成的内容网站。该网站允许用户创建看板,每个看板都在项目根目录中指定了一个目录。因此,git 将这些目录识别为新文件,并且 git status 抱怨未跟踪的文件。如何配置 git 以便只跟踪我的 CMS,而不跟踪用户生成的内容?使用 .gitignore 似乎不适用,因为这意味着每次我需要在 git 中执行某些操作时,我都需要手动添加多达 30 个目录。架构更改将是一个绝妙的主意,但是,有什么方法可以避免它们吗?

您为用户生成的目录添加前缀,例如。 G。使用 usergen_ 并将以下行添加到您的 .gitginore:

/usergen_*

问题是您的体系结构允许在根文件夹中创建文件夹,而您事先并不知道文件夹的名称。正如 ~felixlinker 所建议的那样,为新创建的文件夹添加前缀允许您使用 .gitignore。

另一种解决方案是稍微更改项目的体系结构并拥有一个文件夹,例如 usercontent,然后在其中创建新文件夹,允许您在 .gitignore 文件中添加一个条目排除该文件夹中的任何内容。