0

Testador Gitignore

Cole suas regras .gitignore e uma lista de caminhos de arquivo para ver exatamente quais arquivos são ignorados, por quais regras e linhas exatas e quais regras de negação estão silenciosamente inoperantes porque um diretório pai já foi ignorado.

Buy Me a Coffee at ko-fi.com
Processando... 0%
Analisando regras .gitignore
Caminhos de arquivo correspondentes
Concluído

Resultado

"Por que minha negação .gitignore não funciona?" é uma das perguntas mais comuns sobre git que existe, e a resposta honesta é quase sempre a mesma: um `!pattern` tentando incluir novamente um arquivo dentro de um diretório que uma regra anterior já exclui nunca pode funcionar, porque o git não desce para diretórios ignorados para verificar novamente qualquer coisa dentro deles. Esta ferramenta reimplementa o algoritmo de correspondência .gitignore real do git - não uma aproximação - especificamente para que possa capturar e explicar a situação exata, junto com todas as outras regras de padrão suportadas pelo git.

Cole suas regras .gitignore em uma caixa e uma lista de caminhos de arquivo (um por linha, como `dist/index.js`, `node_modules/foo/bar.js` ou `.env`) na outra, e a ferramenta avalia cada caminho exatamente da maneira que o git faria: comentários e linhas em branco são ignorados, espaços à direita são removidos, a menos que sejam escapados, um `!` inicial nega uma regra, um `/` inicial a ancora na raiz. de deixá-lo corresponder em qualquer profundidade, um `/` final o restringe aos diretórios, e `*`, `?`, `[abc]` classes de caracteres e `**` (correspondência entre limites de diretório) funcionam de acordo com as regras glob documentadas.

Criticamente, os caminhos são verificados diretório por diretório, da raiz para baixo, da mesma forma que o próprio mecanismo de ignorar do git funciona - não testando o caminho completo em relação a cada regra isoladamente. Isso é o que torna possível detectar corretamente o caso de negação morta: se `dist/` for ignorado na linha 3 e um `!dist/keep.js` posterior tentar resgatar um arquivo dentro dele, esta ferramenta relata `dist/keep.js` como ainda ignorado, nomeia a regra da linha 3 como o motivo e sinaliza separadamente a negação como sombreada em vez de fingir silenciosamente que funcionou.

A tabela de resultados fornece a cada caminho testado sua própria linha com um veredicto claro de sim/não ignorado, o texto exato da regra e o número da linha que o decidiu e - sempre que relevante - uma nota em linguagem simples explicando uma negação sombreada ou uma regra de diretório pai herdada. Esse é o detalhe que transforma um .gitignore confuso em um que você pode realmente raciocinar antes de confirmar.