Existem situações em que você precisa trabalhar com um repositório GIT usando o protocolo HTTPs e não pode armazenar permanentemente as credenciais de usuário na configuração local. Uma solução é armazenar em um cache temporário as credenciais (username e password - senha) por um tempo limitado.
A opção git-credential-cache
é o auxiliar que vamos usar para armazenar temporariamente as senhas na memória.
Veja também como definir o autor de um comando Git para uma única execução do comando nesta dica rápida, ou ainda Como configurar username e email por projeto com Git.
O comando git-credential-cache
git config credential.helper 'cache [<options>]'
Descrição
Este comando armazena credenciais na memória para uso por um determinado tempo do programa Git.
As credenciais armazenadas nunca são armazenadas em disco, sendo esquecidas após um tempo limite configurável.
O cache pode ser acessado por meio de um soquete de domínio Unix, restrito ao usuário atual por permissões do sistema de arquivos.
Options
Algumas opções estão disponíveis no uso do comando:
--timeout
Especifica o tempo em segundos para armazenar as credenciais em cache. O valor padrão é 900 o equivalente a 15 minutos.
--socket
Use a opção socket especificando o path (caminho em disco) para contatar um daemon de cache em execução, ou inicie um novo daemon de cache se não tiver sido iniciado.
O padrão é $XDG_CACHE_HOME/git/credential/socket
, a menos que ~/.git-credential-cache/
exista, se existir o caminho ~/.git-credential-cache/socket
é usado no lugar.
Se o seu diretório pessoal estiver em um sistema de arquivos montado em rede, pode ser necessário alterá-lo para um sistema de arquivos local.
Ao utilizar esta opção você deve especificar um caminho absoluto.
Controlando o daemon
Se desejar que o daemon encerre antes do tempo configurado, esquecendo assim todas as credenciais em cache antes de seu tempo limite, você pode utilizar um comando de saída:
git credential-cache exit
Exemplos
O objetivo em utilizar esse helper é diminuir a quantidade de vezes que precisará digitar usuário e senha em um espaço de tempo curto, por exemplo, quando está fazendo ajustes de deploy em um servidor de testes.
Confira o exemplo de uso a seguir
git config credential.helper cache
git push https://gitlab.com/palavrasagrada.git
Username: <seu nome de usuário>;
Password: <sua senha>;
# passados 5 minutos
git push https://gitlab.com/palavrasagrada.git
# Suas credenciais em cache serão utilizadas automaticamente dentro do prazo limite
Neste exemplo de atualização do site Bíblia Palavra Sagrada, o desenvolvedor chamou o helper credential.helper cache
antes de realizar o primeiro push.
Na primeira interação com o repositório, o GIT solicita que o usuário e senha sejam fornecidos, o desenvolvedor executa normalmente digitando-os.
Passados 5 minutos de trabalho no código-fonte, um novo push será executado pelo desenvolvedor, porém, desta vez as credenciais armazenadas em cache são utilizadas sem que seja necessário digitar usuário e senha novamente.
Isto acontecerá pelo prazo de 15 minutos padrão do helper.
Para aumentar o tempo limite é possível utilizar a opção --timeout
fornecendo os segundos:
git config credential.helper 'cache --timeout=3600'
No exemplo acima o tempo definido será de 1 hora.
Comentários