📜  git exclude 嵌套文件夹 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:00:55.707000             🧑  作者: Mango

Git Exclude嵌套文件夹

当我们使用Git管理代码时,有时候我们不希望Git跟踪一些文件或者文件夹,因为这些文件或者文件夹可能包含敏感信息或者不需要被版本控制。

而对于嵌套的文件夹来说,我们可能会希望在忽略父文件夹的同时也忽略其下的所有子文件夹。这时,就需要使用Git exclude属性来实现。

Git Exclude属性

Git Exclude属性可以让我们在Git仓库中指定一些文件或者文件夹,告诉Git不要跟踪它们。在Git中,有两种方法可以设置Exclude属性。

1. 使用.gitexclude文件

在Git仓库的根目录下创建一个名为.gitexclude的文件,并在其中添加需要被忽略的文件或者文件夹,每行一个。

*.log
build/
dist/
node_modules/

上述.gitexclude文件中包含了三个需要被忽略的文件或者文件夹:所有以.log结尾的文件、名为build的文件夹、名为dist的文件夹以及包含在node_modules文件夹下的所有文件。

注意:.gitexclude文件中的忽略规则会影响整个仓库,包括所有分支。

2. 使用.git/info/exclude文件

除了在Git仓库的根目录下创建.gitexclude文件外,我们还可以在.git/info目录下创建一个名为exclude的文件,并在其中添加需要被忽略的文件或者文件夹。其格式与.gitexclude文件相同,每行一个。

*.log
build/
dist/
node_modules/

上述.git/info/exclude文件中包含了三个需要被忽略的文件或者文件夹:所有以.log结尾的文件、名为build的文件夹、名为dist的文件夹以及包含在node_modules文件夹下的所有文件。

注意:.git/info/exclude文件中的忽略规则只会影响当前仓库,不会被提交到Git服务器。

Git Exclude嵌套文件夹

对于嵌套的文件夹来说,使用Git Exclude属性可以实现忽略父文件夹的同时也忽略其下的所有子文件夹。

例如,在.gitexclude或者.git/info/exclude文件中添加如下一行:

build/**

上述规则表示,忽略名为build的文件夹及其下的所有子文件夹和文件。其中,**表示匹配任意层数的子文件夹,*表示匹配当前层的所有文件和子文件夹。

另外一个例子,如果我们想要忽略app文件夹及其下以.js结尾的所有文件,可以添加如下规则:

app/**/*.js

上述规则表示,忽略名为app的文件夹及其下所有名称以.js结尾的文件。其中,**表示匹配任意层数的子文件夹,*表示匹配当前层的所有文件和子文件夹。

总结

Git Exclude属性是很常用的一个Git功能,它可以让我们忽略掉一些不需要被版本控制的文件或者文件夹。当需要忽略嵌套的文件夹时,我们可以使用**通配符来匹配任意层数的子文件夹。