# Testador de glob e .gitignore

Teste padrões glob e regras .gitignore numa lista de caminhos e veja quais caminhos correspondem e que regra o fez.

https://codeknife.dev/pt/testador-glob/

## O que faz

Testa padrões glob e regras `.gitignore` numa lista de caminhos. Cada caminho é marcado como correspondente ou não, com o padrão responsável ao lado, para ver por que `src/lib/util.test.ts` entra ou fica de fora.

## Como usar

1. Cole um caminho por linha, ou solte um arquivo de texto, em **Caminhos**.
2. Escreva um padrão por linha em **Padrões**. Linhas que começam com `#` são comentários.
3. Escolha **Glob**, **Bash** ou **Gitignore**, e mostre todos os caminhos, só as correspondências ou só as que não correspondem.
4. Copie o resultado.

## Exemplos

Com os padrões `src/**/*.ts` e `!**/*.test.ts`, o caminho `src/lib/util.ts` corresponde e `src/lib/util.test.ts` não, porque a exclusão vence. Com as regras `.gitignore` `*.log` e `!keep.log`, `app.log` é ignorado e `keep.log` não.

## Bom saber

- `*` fica dentro de um diretório, `**` atravessa diretórios, e `?`, `[ab]` e `{a,b}` funcionam como no picomatch.
- Arquivos ocultos como `.env` só correspondem se você ativar **Incluir arquivos ocultos** ou o padrão citar o ponto.
- Em Glob e Bash, um padrão que começa com `!` exclui o que os outros encontraram. Em Gitignore vence a última regra que corresponde, como no Git.
- Bash lê `**` como um simples `*`, como um shell sem `globstar`.
- Os caminhos são comparados como texto. Nada é lido de um disco.

## O que significam as três sintaxes?

Glob é a sintaxe picomatch da maioria das ferramentas de build: * fica dentro de um diretório, ** atravessa diretórios, e chaves como {a,b}, classes como [ab] e ? também funcionam. Bash lê ** como um simples *, como um shell sem globstar. Gitignore segue as regras do .gitignore: uma barra no fim indica um diretório, uma barra no início ancora na raiz, e uma regra ! posterior reinclui o que uma anterior ignorava.

## Perguntas frequentes

### Que regra aparece ao lado de um caminho?

O primeiro padrão que corresponde. Em glob e bash, um caminho removido por uma exclusão (um padrão que começa com !) mostra essa exclusão. Em gitignore, aparece a regra que o ignorou.

### Por que * não corresponde a um arquivo que começa com ponto?

Os globs ignoram arquivos ocultos, a menos que o padrão cite o ponto. Ative Incluir arquivos ocultos para que * e ? os encontrem, como o bash dotglob. Um .gitignore não tem essa opção.

### Esta ferramenta envia meus caminhos para algum lugar?

Não. Tudo acontece no seu navegador. O que você digita nunca é enviado aos nossos servidores.