全局路径忽略全局Git

时间:2018-09-18 14:42:19

标签: git gitignore

我有一个项目,我想忽略一个名为.eslintrc.js的根文件。团队只希望在其IDE中不要使用构建工具。我想将此添加到我的计算机的根目录中,而忽略 而不使用该项目的.gitignore

我也不想将/.eslintrc.js添加到我的~/.gitignore_global文件中,因为当我不这样做时,我还有其他项目。不想忽略掉毛规则。

我尝试添加

~/code/repo-name/.eslintrc.js

在我的~/.gitignore_global文件中,但是git无法识别该规则。

如何使全局git忽略规则在某些项目中起作用而在其他项目中不起作用?

我可以设置git在忽略某些内容时使用完整路径吗?

2 个答案:

答案 0 :(得分:1)

首先,值得一提的是有关忽略文件模式的一些技巧:如果它们包含一个前导斜线或一个嵌入式斜杠,它们将应用于多个名称组件,但如果不包含它们,它们将应用于一个名称组件(在任何目录Git中当时正在递归遍历)。如果删除了斜杠,则在删除斜杠后应用此规则,从而使.gitignore文件包含:

abc
def/ghi

忽略从此点“向下”出现的名为abc所有文件(和目录),而仅忽略出现在 at def/ghi这点。第二行与/def/ghi完全等效。

  

我可以设置git在忽略某些内容时使用完整路径吗?

不。 Gitignore模式是相对于发生忽略文件的目录(对于大多数.gitignore文件而言),还是相对于项目根目录(对于.git/info/exclude和您的个人忽略文件而言)。也就是说,假设项目位于/home/arron/project/proj1中,并且:

$ cd ~/project/proj1/
$ cat .gitignore
/abc
sub/file
$ cat sub/.gitignore
/dir/

所有这些条目均包含/或以.gitignore开头,因此顶层abc会抑制项目顶层对未跟踪文件file的投诉以及对未跟踪文件的投诉sub目录中的sub。同时,目录.gitignore有自己的dir,不仅可以抑制投诉,而且可以阻止Git甚至枚举{{中的目录sub内容 1}},也就是说,Git根本不在project/proj1/sub/dir/内部查看(因此,在该目录 内没有发现或抱怨任何未跟踪的文件)。

请注意,如果我们同时修改两个.gitignore文件,那么我们可以:

$ cat .gitignore
/abc
$ cat sub/.gitignore
/file
/dir/

被忽略文件的集合保持完全相同。

答案 1 :(得分:1)

对于不能放在项目.gitignore中的单独本地文件,可以像在常规.git/info/excludes中一样,将它们添加到.gitignore中:

# Ignore local ESLint config
.eslintrc.js

这也适用于文件夹,但是还有另一种方法:在该文件夹内添加另一条.gitignore文件,仅一行,其中包含*