1. Ignore valores locais e mantenha o exemplo
Coloque estas regras no .gitignore da raiz. Elas cobrem .env e arquivos da raiz que começam com .env., reincluindo .env.example. Não cobrem service.env nem arquivos em subdiretórios.
Revise .env.example antes do commit: o nome de exemplo não garante que os valores sejam seguros para publicar. Use valores fictícios e documente as variáveis necessárias.
/.env
/.env.*
!/.env.example 2. Verifique os três casos
Com .env, .env.local e .env.example não rastreados, confira as regras correspondentes:
git check-ignore -v -- .env .env.local .env.example!/.env.example indica que o exemplo é reincluído. O status deve mostrá-lo e omitir os dois arquivos de valores locais. Um pai excluído ou regra posterior ainda pode alterar o resultado.
git status --short --untracked-files=all -- .env .env.local .env.example 3. Trate valores já rastreados
Confira se o Git já rastreia algum arquivo de valores locais:
git ls-files -- .env .env.localSe aparecerem caminhos, siga o artigo sobre arquivos rastreados e coordene mudanças. .gitignore não remove commits existentes. Se uma credencial vazou, revogue ou substitua primeiro e siga a orientação do GitHub; remover o arquivo atual não apaga o histórico.
Consulte as referências oficiais para conhecer o comportamento exato e mais detalhes: Documentação do Git · Perguntas frequentes do Git · Orientações do GitHub sobre dados sensíveis expostos