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.

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 <path>

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.

Mantenha-se atualizado

Não esqueça de me seguir no Twitter e assinar o Canal Mazer.dev no Youtube para receber atualizações de novos artigos, vídeo aulas e cursos gratuitos em desenvolvimento e engenharia de software.

Mais sobre GIT, Github e Gitlab

Como resolver o erro fatal refusing to merge unrelated histories
O erro fatal refusing to merge unrelated histories é lançado ao tentar fazer o merge automático de projetos que possuem históricos Git diferentes. Desde o Release 2.9.0 o Git não permite esta operação. O erro fatal: refusing …
Como configurar username e email por projeto com Git
Se você trabalha com diferentes usuários em projetos pessoais e de trabalho, é interessante configurar seu username e email no Git de maneira local, por projeto, para que seja corretamente rastreado no Github, Gitlab e …
Instalando Git no Windows, Linux e MacOS
O sistema de versionamento de software Git não vem instalado por padrão nos sistemas operacionais Linux, Windows e MacOS. Mesmo se ele já tiver sido instalado, é uma boa ideia atualizar para a versão mais …
Repositórios de dados abertos para programadores
Awesome Data Table References é um repositório de minha responsabilidade, onde faço curadoria de referências para tabelas de dados abertos de instituições e órgãos brasileiros e mundiais. Sempre que é necessário criar um campos de …
Git Workflow simples
Neste artigo apresento uma proposta para um fluxo de trabalho simples usando a ferramenta de gestão de versão de código fonte padrão do mercado, um Git workflow. Para uma gestão eficiente de um projeto de …
O que é Git
Você conhece o conceito geral e sabe o que é o GIT? Este que é, de longe, o sistema de controle de versão moderno mais usado no mundo atualmente. O Git é um projeto de …

1 comentário em “Cache temporário das credenciais GIT – username e password”

  1. Pingback: Git - dicas rápidas, comandos e tutoriais - MAZER.DEV

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *