Eu quero fazer este comando em uma linha:
git pull && [my passphrase]
Como fazer isso?
Eu quero fazer este comando em uma linha:
git pull && [my passphrase]
Como fazer isso?
Respostas:
Não é exatamente isso que você solicitou, mas http (s):
https://user:pass@domain/repo
mas isso não é realmente recomendado, pois mostraria seu usuário / passe em muitos lugares ...Exemplos de uso para auxiliar de credenciais
git config credential.helper store
- armazena as credenciais indefinidamente.git config credential.helper 'cache --timeout=3600'
- armazena por 60 minutosPara acesso baseado em ssh, você usaria o agente ssh que fornecerá a chave ssh quando necessário. Isso exigiria gerar chaves no seu computador, armazenar a chave pública no servidor remoto e adicionar a chave privada ao keystore relevante.
Encontrei uma maneira de fornecer credenciais para uma conexão https na linha de comando. Você só precisa especificar o URL completo para o git pull e incluir as credenciais:
git pull https://username:password@mygithost.com/my/repository
Você não precisa ter o repositório clonado com as credenciais antes, isso significa que suas credenciais não acabam .git/config
. (Mas verifique se o seu shell não o trai e armazena a linha de comando em um arquivo de histórico.)
:password
peça, será solicitada a senha após pressionar Enter. Dessa forma, sua senha não será salva no histórico do bash.
Não responde diretamente à pergunta, mas eu a encontrei ao procurar uma maneira de, basicamente, não redigitar a senha toda vez que puxo um servidor remoto .
Bem, git
permite armazenar em cache suas credenciais por um período finito de tempo. É personalizável git config
e esta página explica muito bem:
https://help.github.com/articles/caching-your-github-password-in-git/#platform-linux
Em um terminal, execute:
$ git config --global credential.helper cache
# Set git to use the credential memory cache
Para personalizar o tempo limite do cache, você pode:
$ git config --global credential.helper 'cache --timeout=3600'
# Set the cache to timeout after 1 hour (setting is in seconds)
Suas credenciais serão armazenadas na memória pelo período solicitado.
Observe que a maneira como o assistente de credencial do git "armazena" as senhas não criptografadas muda com o Git 2.5+ (Q2 2014).
Veja commit 17c7f4d por Junio C Hamano ( gitster
)
credential-xdg
Ajuste o "
store
" back-end de amostra do auxiliar de credencial para honrar os locais do arquivo de configuração do XDG, quando especificado.
O documento agora diz:
Se não especificado:
- as credenciais serão pesquisadas a partir
~/.git-credentials
e$XDG_CONFIG_HOME/git/credentials
, e- as credenciais serão gravadas
~/.git-credentials
se existirem ou$XDG_CONFIG_HOME/git/credentials
se existirem e as primeiras não existirem.
Abaixo, o cmd funcionará se não tivermos uma senha @ in:
git pull https://username:pass@word@mygithost.com/my/repository
Se você tiver uma senha @ in, substitua-a por% 40, como mostrado abaixo:
git pull https://username:pass%40word@mygithost.com/my/repository