Игнорировать все файлы с таким же именем в git

Есть ли способ, чтобы git ignore file игнорировал все файлы с именем test в них?

У меня есть такие файлы:

 - css/test.css 
 - js/subfolder/test.js 
 - lib/main/sub/test.html

и так далее.

Я хочу, чтобы git не добавлял и не фиксировал какие-либо файлы с именем test.


person Chapsterj    schedule 24.01.2012    source источник
comment
На этот и многие другие вопросы, которые могут у вас возникнуть о gitignores, можно ответить, прочитав man gitignore, который содержит описание синтаксиса и несколько небольших примеров.   -  person Cascabel    schedule 24.01.2012
comment
никто не любит умников   -  person Bruno Jennrich    schedule 28.03.2021


Ответы (3)


Обновить .gitignore с помощью test*

Кроме того, прочтите это для получения дополнительной информации.

person James Raitsev    schedule 24.01.2012
comment
Почему так много голосов? Правильным кажется **/.. с двумя начальными звездами. Ссылка также не относится к 2 звездам. test* игнорирует его только в базовом каталоге. - person Timo; 20.07.2018
comment
@Timo test* рекурсивно игнорирует. Если вы укажете префикс /, например, /test*, то он будет игнорироваться только в базовом каталоге. - person Eric Zhang; 11.10.2018
comment
Я получаю те же результаты, что и Тимо - с косой чертой или без нее, имя файла, за которым следует звездочка, например. test*, не игнорируется за пределами базового каталога. - person Bytech; 06.11.2018
comment
От man gitignore: A leading "**" followed by a slash means match in all directories. For example, "**/foo" matches file or directory "foo" anywhere, the same as pattern "foo". "**/foo/bar" matches file or directory "bar" anywhere that is directly under directory "foo". - person Rakib; 25.03.2019
comment
Это не отвечает на вопрос. - person Qumber; 04.06.2020

Из документов git

A leading "**" followed by a slash means match in all directories. For
example, "**/foo" matches file or directory "foo" anywhere, the same
as pattern "foo". "**/foo/bar" matches file or directory "bar"
anywhere that is directly under directory "foo".

Для вашего случая:

**/[Tt]est*

он также соответствует как верхнему, так и нижнему регистру.

person Alex.K.    schedule 04.08.2016
comment
Что делает конечный *? - person clabe45; 14.07.2018
comment
@clabe45 Две последовательные звездочки () в шаблонах, совпадающих с полным путем, могут иметь особое значение: 1) Начальный, за которым следует косая черта, означает совпадение во всех каталогах. 2) Завершающий /** соответствует всему внутри. 3) Косая черта, за которой следуют две последовательные звездочки, после чего косая черта соответствует нулю или более каталогам. 4) Другие последовательные звездочки считаются недействительными. - person Alex.K.; 14.07.2018
comment
@clabe45 вы можете найти более подробную информацию по ссылке, указанной в ответе - person Alex.K.; 14.07.2018
comment
пожалуйста, добавьте комментарий, если вы проголосовали против. - person Alex.K.; 30.11.2020
comment
@clabe45 a * — это специальный символ, означающий любое число (включая ноль) любого символа. Так что в этом случае он будет соответствовать test.json, test.py, testosterone, testimony.txt.jpg.zip или даже просто test. Вы можете попробовать выполнить **/[Tt]est.* с точкой, хотя это не перехватит такие файлы, как testClient.js. - person Mauve Ranger; 01.07.2021

Попробуйте добавить шаблон в .gitignore теста.*

Добавьте его и сделайте статус git с некоторыми файлами, как вы упомянули выше.

Если это работает, ты в порядке.

person Dave G    schedule 24.01.2012