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.