我有一个项目,我想忽略一个名为.eslintrc.js
的根文件。团队只希望在其IDE中不要使用构建工具。我想将此添加到我的计算机的根目录中,而忽略 而不使用该项目的.gitignore
。
我也不想将/.eslintrc.js
添加到我的~/.gitignore_global
文件中,因为当我不这样做时,我还有其他项目。不想忽略掉毛规则。
我尝试添加
~/code/repo-name/.eslintrc.js
在我的~/.gitignore_global
文件中,但是git无法识别该规则。
如何使全局git忽略规则在某些项目中起作用而在其他项目中不起作用?
我可以设置git在忽略某些内容时使用完整路径吗?
答案 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
文件,仅一行,其中包含*