Trabalhando a partir da versão 1.8.3.1 do git;
git clone -c core.askPass $echo url/or/path/to/git/repo
A configuração core.askPass
funciona passando o controle de manipulação de credenciais para o programa mencionado acima. No entanto, como $echo
não é possível fazer nada, exceto a saída, a tentativa de clone falha imediatamente e o redirecionamento do bash é aplicável. Esse código é invocado apenas no caso de o repositório git ser privado e canalizará a saída de erro informando que a autenticação falhou para o repositório específico. Você pode testar isso no https://github.com/git/git
repositório público em um repositório privado que você conhece.
Para adoçar o negócio, você nem precisaria fazer referência a um programa como echo
em primeiro lugar. Simplesmente passar a configuração do git -c core.askPass
sem nenhuma entrada a seguir ainda causaria falha no caso de o repositório ser privado, pois o código não saberá para qual programa transferir a manipulação de credenciais. Embora este seja certamente um método mais antigo e mais simples do que os outros mencionados aqui, não sei se ele terá o mesmo efeito nas versões mais antigas do git.