Можете ли вы поместить .gitignore в подкаталог, такой как config, вместо корневого каталога по структурным соображениям? - PullRequest
0 голосов
/ 01 июня 2018

У меня тонна файлов, которые попадают в корневую папку, и я хочу их очистить.

например

.env
.babelrc
.eslintignore
.eslintrc.json
webpack.config.js
gulpfile.js
sequelize.json

... list goes on

Я хочу переместить все из них в конфигурациипапка, потому что это то, что они есть.

Так что возможно применить gitignore из подкаталога к родительскому.

Кажется, что каждый инструмент хочет вставить свой файл конфигурации в корневой каталог

aws, gulp, webpack, vscode, база данных, реагировать, linting ...

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Это может быть технически возможно или нет (вероятно, не совсем надежно), но, независимо от этого, мой ответ:

Не.

Корневой каталог действительноправильное место для этого материала по нескольким причинам:

  • это просто работает, без хрупких или сложных причуд,
  • скрытие конфигурации в каком-либо каталоге затруднит его поиск длялюди, которые ищут его (например, когда что-то ломается),
  • сокрытие конфигурации затруднит даже обнаружение того, что файлы конфигурации вообще существуют,
  • это просто стандартное место для всего этого.

Знаете, вы просто не хотите, чтобы люди (особенно вы сами) тратили три часа на отладку какой-то проблемы, только чтобы обнаружить, что она была вызвана хорошо скрытым файлом конфигурации, и это результатЯ ожидаю.

Сокрытие конфигурации идет прямо вразрез с принципом наименьшего удивления , и это плохая идея.

"Но мойеФайлы теряются между конфигурациями! "

Если ваши файлы теряются между файлами конфигурации, значит, вы решаете не ту проблему.Вы должны просто положить свои вещи в подкаталоги, такие как src, docs, test или там, где это имеет смысл для вашего случая.Это стандартный способ, и это то, что делают люди (по крайней мере, в мире JavaScript, который, по-видимому, ваш случай, но на самом деле то же самое с любым другим языком).Непосредственно в корневом каталоге находятся только конфиги, readme и лицензия.

Поместите конфигурацию в package.json вместо

С другой стороны, для конкретных инструментов, о которых вы упоминаете, обычно может содержаться конфигурацияв файле пакета (package.json).Таким образом, если вас так зудит распространение файлов, простое решение - перенести туда все возможные конфигурации.Размер файла будет огромным (в любом случае, это так), но он все же может быть предпочтительнее нескольких файлов.

0 голосов
/ 01 июня 2018

Очень хорошие вопросы, спасибо, что спросили.

На мой взгляд, у меня есть 2 способа решить эту проблему.

Первый: локальный

Вы нене нужно использовать .gitignore, чтобы вообще игнорировать файлы, и вместо этого поместить ваши шаблоны в:

.git/info/exclude

Второе: пользовательское игнорирование

git config core.excludesfile ./config/.gitignore

Который эффективно решает вашу проблему.

...