Global Git Ignore с абсолютным путем - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть один проект, в котором я хочу игнорировать корневой файл с именем .eslintrc.js.Команда хочет использовать только инструменты сборки, а не свои IDE.Я хочу добавить это в корень на моей машине и игнорировать его , не используя .gitignore для этого проекта.

Я также не хочу добавлять /.eslintrc.js к моему ~/.gitignore_global файлу, потому что у меня есть другие проекты, когда я не хочу игнорировать правила линтинга.

Я попытался добавить

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

вмой файл ~/.gitignore_global, но затем git не распознает правило.

Как создать глобальное правило игнорирования git, которое работает в некоторых проектах, а не в других?

Можно ли настроить git на использование полных путей при игнорировании чего-либо?

1 Ответ

0 голосов
/ 18 сентября 2018

Во-первых, стоит упомянуть о хитрости, связанной с игнорированием шаблонов файлов: если они содержат начальную или встроенную косую черту, они применяются к нескольким компонентам имен, но если нет, они применяются к одному компоненту имени (в любом каталоге Git).это рекурсивно, в то время).Это правило применяется после удаления завершающего слеша, если он есть, поэтому файл .gitignore, содержащий:

abc
def/ghi

, игнорирует все файлы (и каталоги) с именем abcкоторые происходят из этой точки «вниз», игнорируя только 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, который не только подавляет жалобы, но и не позволяет Git даже перечислять содержимое of, каталог dir в sub, т. Е. Git незагляните внутрь project/proj1/sub/dir/ (следовательно, не обнаруживает и не жалуется на любые неотслеживаемые файлы в этом каталоге).

Обратите внимание, что если мы изменим оба файла .gitignore, чтобывместо этого:

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

набор игнорируемых файлов остается точно таким же.

...