O que realmente controla o e-mail em um commit
O e-mail do autor de um commit é definido pela configuração do Git na máquina que cria o commit, não pelo e-mail exibido no seu perfil do GitHub. O e-mail do perfil do GitHub é uma configuração separada, usada para notificações, recuperação de conta e algumas ações na interface web. Se você faz commits pelo terminal, o endereço gravado no objeto do commit vem do seu valor local de user.email. Essa distinção é o ponto central: mudar o e-mail do perfil não afeta commits futuros feitos pela linha de comando, e mudar a configuração local do Git não afeta commits já enviados.
A configuração do Git controla o e-mail anexado a commits futuros feitos pela linha de comando. Fonte
Antes de mudar qualquer coisa, entenda o que você está auditando. Você não está tentando apagar seu e-mail do GitHub. Você está tentando decidir qual endereço deve aparecer nos commits que criar daqui em diante e se algum dos seus repositórios ainda depende do endereço antigo para atribuição ou ferramentas.
Passo 1: Inspecione a identidade que seus commits carregam atualmente
Comece observando o que seus commits recentes realmente contêm. Em um repositório seu, execute um log que mostre os campos de e-mail do autor e do committer nos últimos commits. O objetivo é ver a string exata do endereço, não julgar ainda se é sensível. Faça isso em cada repositório de onde você faz push pela linha de comando, porque a configuração local pode variar por repositório.
Em seguida, verifique a configuração efetiva que o Git usará naquele repositório. O Git resolve a configuração em vários escopos, e um valor no nível do repositório substitui um global. Se você vir um endereço que não reconhece, ele pode vir de uma configuração local do repositório, de um arquivo de configuração incluído ou de uma variável de ambiente no seu shell. Registre o que encontrar antes de editar; uma auditoria que você não consegue reproduzir não é uma auditoria.
Passo 2: Separe as duas configurações na sua cabeça
Use esta tabela de decisão para manter a configuração do perfil e a do commit distintas. Ela descreve a mecânica geral que você pode verificar na sua própria conta e terminal; não afirma rótulos de menu específicos ou caminhos atuais da interface.
| Pergunta | Governado por | O que muda ao alterar | O que não muda |
|---|---|---|---|
| Qual e-mail aparece no meu perfil do GitHub? | Configurações de e-mail da conta GitHub | Exibição do perfil, notificações, recuperação de conta | O e-mail do autor em commits que você cria localmente |
| Qual e-mail é gravado em um novo commit? | Configuração local do Git user.email | Commits futuros feitos daquela máquina ou repositório | Commits já criados ou enviados |
| Commits antigos mudarão se eu trocar para noreply? | Nada automático | Nada | Objetos de commit existentes mantêm o e-mail do autor original |
| Posso ocultar meu e-mail de commits públicos futuros? | Configuração local do Git mais um endereço noreply | Novos commits que você criar após a mudança | Histórico passado, forks e cópias em cache em outros lugares |
A conclusão prática da tabela: você tem duas alavancas independentes. Puxe a alavanca do commit se sua preocupação são pushes futuros. Não espere que a alavanca do perfil faça esse trabalho.
Passo 3: Escolha um endereço noreply e configure-o localmente
O GitHub oferece uma opção de endereço noreply. O formato exato é documentado pelo GitHub e pode mudar com o tempo, então copie o endereço das configurações da sua própria conta, não de um post de blog. Depois de obtê-lo, defina-o como e-mail de commit no escopo que corresponde ao seu fluxo de trabalho.
Uma sequência segura:
- Copie o endereço noreply fornecido pelo GitHub nas configurações da sua conta.
- Decida o escopo: defina globalmente se todos os repositórios da máquina devem usá-lo, ou por repositório se você contribui para projetos que esperam uma identidade diferente.
- Aplique a configuração com
git configno escopo escolhido. - Crie um commit de teste em um branch de rascunho e inspecione o e-mail do autor antes de enviar.
- Faça o push somente depois que o commit de teste mostrar o endereço noreply.
O GitHub oferece uma opção de endereço noreply; alterar o endereço configurado não reescreve commits existentes. Fonte
Esse segundo ponto é o que as pessoas esquecem. Mudar para noreply é um controle voltado para o futuro. Não reescreve commits existentes e não remove seu endereço antigo de objetos de commit que já são públicos. Se um repositório foi bifurcado ou espelhado, essas cópias mantêm os dados originais do commit independentemente do que você configurar hoje.
Passo 4: Verifique o comportamento da interface web e das ferramentas separadamente
Commits criados pela interface web do GitHub, ou por bots e integrações, podem usar um caminho de identidade diferente do seu terminal local. Não presuma que uma mudança na configuração local cobre todos os commits que chegam a um repositório. Revise os campos de autor em commits de fontes diferentes e anote quais você controla diretamente. Para integrações que você não controla, a resposta honesta é que você não pode definir a identidade de commit delas a partir do seu laptop; você só pode decidir se continua usando essa integração.
Passo 5: Decida o que fazer com o histórico antigo
Você tem três opções realistas, e nenhuma delas é “fazer a exposição antiga desaparecer”.
| Opção | O que faz | Custo e limites |
|---|---|---|
| Deixar o histórico como está | Nenhum risco de quebrar clones ou referências | Commits antigos mantêm o e-mail do autor original |
| Reescrever o histórico no seu próprio repositório | Altera objetos de commit daqui em diante naquele repositório | A reescrita é disruptiva, não alcança forks ou espelhos e está fora do escopo para a maioria dos usuários |
| Remover ou rotacionar o endereço exposto | Reduz a exposição futura se o endereço ainda estiver ativo | Não altera commits que já o contêm |
Para a maioria dos leitores, o movimento certo é o primeiro ou o terceiro: parar de adicionar o endereço a novos commits e tratar os commits antigos como permanentemente públicos. Se o endereço exposto é um que você ainda usa para login ou recuperação, considere se ele deveria permanecer associado à conta. Essa é uma decisão de segurança da conta, não de configuração do Git.
Erros comuns
- Mudar o e-mail do perfil e assumir que os commits estão resolvidos. A configuração do perfil e a identidade do commit são separadas. Commits futuros no terminal ainda carregarão o endereço antigo até você mudar a configuração local do Git.
- Definir noreply globalmente sem verificar substituições no repositório. Um
user.emaillocal do repositório prevalecerá sobre seu valor global. Audite cada repositório de onde você faz push. - Enviar um commit de teste para um branch público. Verifique o e-mail do autor em um branch de rascunho ou com um log local antes de enviar.
- Acreditar que a troca para noreply limpa o histórico. Ela não reescreve commits existentes e não alcança forks, espelhos ou cópias em cache.
- Presumir que toda fonte de commit está sob seu controle. Commits da interface web e de integrações podem usar identidades diferentes; verifique em vez de presumir.
- Tratar um perfil editado como exclusão. Mudar o que seu perfil exibe não apaga dados armazenados nem altera objetos de commit.
Protegendo sua própria pegada
O e-mail de commit é um canal estreito. Sua pegada pública também inclui os nomes de usuário e perfis vinculados a esse endereço em outras plataformas. Se você está auditando um endereço porque ele apareceu em algum lugar público, o próximo passo útil é ver quais contas públicas estão associadas a ele. O guia da TruthsSeek sobre como encontrar contas vinculadas a um endereço de e-mail percorre esse processo de revisão, e a página de busca do GitHub em /find/github/ é um ponto de partida para verificar um nome de usuário conhecido. O TraceSeek, aplicativo coberto pela TruthsSeek, verifica um nome de usuário em 3.000+ plataformas e oferece uma primeira verificação gratuita; o produto afirma que uma verificação leva 20–30 segundos. Essas ferramentas revelam correspondências públicas como pistas, não como prova de propriedade, e não alteram configurações de plataformas nem expõem registros privados. Use-as para mapear o que já é público e depois faça as mudanças de configuração nas próprias plataformas.
Uma rotina realista: corrija sua identidade local do Git uma vez, verifique com um commit de teste e depois recheque periodicamente os campos de autor em commits de novas ferramentas ou máquinas. Trate cada commit enviado como dado público permanente, porque na prática geralmente é.
Fatos principais
- A configuração do Git controla o e-mail anexado a commits futuros feitos pela linha de comando.
- O GitHub oferece uma opção de endereço noreply; alterar o endereço configurado não reescreve commits existentes.
- A configuração de e-mail do perfil do GitHub e a configuração de e-mail de commit local do Git são controles separados com efeitos diferentes.
- O TraceSeek verifica nomes de usuário em 3.000+ plataformas e oferece uma primeira verificação gratuita, com tempo de verificação declarado pelo produto de 20–30 segundos.
- Correspondências públicas de nome de usuário são pistas, não prova de propriedade da conta.