Como posso forçar o git a me solicitar o endereço de email a ser usado, se não estiver definido na configuração do repo?

1

Vamos fingir que sou um empreiteiro que ocasionalmente trabalha em dois projetos simultaneamente (um pode ser de manutenção, um pode estar em desenvolvimento)

Ocasionalmente eu tenho que trabalhar em um novo repositório, e eu esqueço de definir o endereço de e-mail para usar no git, então o padrão é o endereço de e-mail definido globalmente.

Como posso gerenciar isso melhor?

O que acontece se eu apenas definir o endereço de email no nível do repo? vai reclamar ou vai se comprometer sem um endereço de e-mail definido?

Como posso verificar um novo repo, solicitar um endereço de e-mail?

É possível solicitar um dos 2 arquivos de configuração de perfis de empresas diferentes?

Eu estou propenso a cometer este erro várias vezes, meses a parte, então eu costumo esquecer coisas que precisam ser configuradas em novas máquinas, ou comandos que precisam ser executados ao invés dos git padrão.

Isso também me afeta ocasionalmente quando eu trabalho em casa.

    
por Ryan The Leach 05.10.2018 / 08:41

2 respostas

2

Uma maneira de fazer isso é desabilitar o user.email local e ativar a opção user.useConfigOnly. Esta opção está disponível no do git 2.8 em diante .

git config --global --unset-all user.email
git config --global --add user.useConfigOnly true

Essa configuração é por computador, então você precisa definir isso em cada computador para o qual está clonando.

Com este conjunto, as confirmações falharão porque o seu email não está definido e a detecção automática está desativada.

$ git commit -m "Test"
fatal: no email was given and auto-detection is disabled

Em seguida, para cada novo repositório, configure seu endereço de e-mail localmente:

git config --local --add user.email "[email protected]"
    
por 05.10.2018 / 09:14
0

Combinado com a resposta do @NightSicarius, é possível usar "Conditional Includes" em uma configuração do git.

Dos comentários no link

This is even easier now with the addition of conditional includes in Git v2.13. You can use the same folder structure/.gitemail files that you mention but reference them from the top down rather than relatively.

If the include condition ends in a trailing “/”, the path is matched recursively to all subdirectories, making the whole structure work.

[includeIf “gitdir:C:/Apache2.2/htdocs/jm/”] path = C:/Apache2.2/htdocs/jm/.gitconfig

More information can be found at: https://git-scm.com/docs/git-config#_conditional_includes

And an example at: https://stackoverflow.com/a/43884702/6798110

    
por 05.10.2018 / 09:31

Tags