小编典典

使用 .gitignore 忽略除特定目录之外的所有内容

all

我的问题是我的 git repo 中有一堆 WordPress 网站,我想选择性地只提交我的themes文件夹的内容,而忽略 WordPress
中发现的其余冗余文件。

我以前使用 .gitignore 文件来忽略文件类型,但是可以反过来使用它 - 即忽略除某个文件夹路径之外的所有内容?

root (git repo)
- / wordpress
- - / (WordPress Site 1)/wp-content/themes
- - / (WordPress Site 2)/wp-content/themes
- - / (WordPress Site 3)/wp-content/themes

谢谢-

更新:

根据答案,我做了以下,但它不工作。有任何想法吗?

# Ignore everything:
*
# Except for wordpress themes:
!*/wp-content/themes/*

我还尝试了以下变体:

!*/wp-content/themes*
!*wp-content/themes/*
!wp-content/themes/*
!/wordpress/*/wp-content/themes*
!wordpress/*/wp-content/themes*

这些都没有读取我的themes文件夹。


阅读 73

收藏
2022-08-03

共1个答案

小编典典

我是这样做的——你基本上必须沿着小路走,你不能在任何方向上通配符超过一个级别:

# Ignore everything:
*

# Except for the themes directories:

!wordpress/
!wordpress/*/
!wordpress/*/wp-content/
!wordpress/*/wp-content/themes/
!wordpress/*/wp-content/themes/*
!wordpress/*/wp-content/themes/*/*
!wordpress/*/wp-content/themes/*/*/*
!wordpress/*/wp-content/themes/*/*/*/*
!wordpress/*/wp-content/themes/*/*/*/*/*

请注意,您必须如何明确允许要包含的每个级别的内容。所以如果我在主题下有 5 个子目录,我仍然需要把它拼出来。

这只是它对我有用的方式。如果有人愿意通过各种方式提供更明智的解释。


不工作:

!**/wp-content/themes/
!**/wp-content/themes/**
2022-08-03