Pasta ignorada com barra final
- Entrada
- build/ + !build/keep.txt → build/keep.txt
- Saída esperada
- ignorado pela linha 1 / ignored by line 1
A negação da linha 2 não tem efeito.
gitignore ignorar pasta exceto um arquivo
Digite as regras na aba Testar e cole os caminhos: o resultado diz se a negação teve efeito ou se foi bloqueada pela pasta pai, com a linha responsável.
A negação da linha 2 não tem efeito.
A linha 2 reinclui o arquivo.
Só keep.txt foi reincluído.
build/out é excluída por build/*.
Cada pasta do caminho precisa ser reincluída.
O restante de uploads/ fica ignorado.
Toque no atalho da sua pilha (Next.js, Python, Laravel, Unity e outros) ou busque pelo nome: react e vite abrem o modelo Node, django abre o Python. Some o editor (Visual Studio Code, JetBrains) e o sistema (macOS, Windows, Linux) de quem trabalha no projeto, copie o resultado e salve como .gitignore na raiz do repositório. Modelos de editor e de sistema também podem ir para um arquivo global (core.excludesFile), para não poluir o projeto.
Porque pasta/ exclui o diretório e o Git não entra em diretório excluído. Troque por pasta/* para ignorar só o conteúdo e a negação passar a valer.
Não. É só uma convenção. Qualquer arquivo comitado dentro da pasta faz o Git criá-la no clone; o importante é a regra de negação apontar para o nome que você escolheu.
Sim. A última regra que casa vence. A negação precisa vir depois da regra que ignora, e por isso !build/keep.txt antes de build/* não teria efeito algum.
Carregando os modelos...
Escolha ao menos um modelo para gerar o arquivo.
Carregando os modelos...
# Normalize line endings: Git detects text files, LF in the repository. * text=auto eol=lf # Shell scripts need LF; Windows scripts need CRLF. *.sh text eol=lf *.bat text eol=crlf *.cmd text eol=crlf *.ps1 text eol=crlf # Binary files: no conversion and no text diff. *.png binary *.jpg binary *.jpeg binary *.gif binary *.ico binary *.webp binary *.pdf binary *.zip binary *.gz binary *.woff binary *.woff2 binary # Lock files: GitHub collapses them in diffs. package-lock.json linguist-generated yarn.lock linguist-generated pnpm-lock.yaml linguist-generated
O .gitignore só vale para arquivos que o Git ainda não rastreia. Para parar de rastrear sem apagar do disco:
git rm --cached path/to/file git rm -r --cached path/to/folder git commit -m "Stop tracking ignored files"
Para reaplicar o .gitignore a tudo de uma vez (revise o git status antes do commit):
git rm -r --cached . git add . git commit -m "Apply .gitignore"
Para ignorar só na sua máquina, use um arquivo global (core.excludesFile) ou o .git/info/exclude do clone, com a mesma sintaxe:
git config --global core.excludesFile ~/.gitignore_global .git/info/exclude
Nenhum problema encontrado nas regras.