Tengo la configuración de proxy de git como 'http.proxy = http: // userId: pwd @ 123 @ipaddress: port' pero al clonar un proyecto remoto, obtengo un error como
Cloning into git...
error: Couldn't resolve proxy '123@ipaddress' while accessing http://git.kernel.org/pub/scm/git/git.git/info/refs
fatal: HTTP request failed
¿Cómo escapar del carácter '@' en la contraseña?
Nota: no puedo cambiar la contraseña.

Nota (noviembre de 2013)
Codificar la URL (especialmente cualquier carácter especial en una contraseña) es la solución correcta.
Lo
.netrcmencionado a continuación es solo para la URL de repositorio remoto, no para el proxy utilizado para resolver dicha URL de repositorio remoto.Para dicha codificación, consulte " Codificación porcentual ":
Respuesta original (mayo de 2011)
Dos comentarios:
tener una contraseña para un servidor al que se accede con http (no https) es ... extraño. La contraseña no está encriptada durante las comunicaciones entre el cliente y el servidor;
puede configurar un
.netrc(o_netrcpara Windows) en su$HOME, con el siguiente contenidodirección IP de la máquina: puerto ID de usuario de inicio de sesión contraseña pwd @El rizo utilizado por Git bbehind the scene manejaría bien la codificación,
@o no@.fuente
http://123@ipaddress:port/...como una dirección de clonación, sin tener que agregar información de usuario y contraseña.La URL codifica cualquier carácter inusual.
Lista de códigos de URL.
En mi archivo de configuración de git, he codificado 'solo' el nombre de usuario, por ejemplo:
fuente
Por ejemplo, su contraseña almacenada en la variable de entorno
GIT_PASSWORD, nombre de usuario -GIT_USERNAME, luego:Explicación de:
echo -n $GIT_PASSWORD | hexdump -v -e '"x" 1/1 "%02X"' | tr x %$GIT_REPOSITORY<-hellohello<-x68x65x6Cx6Cx6Fx68x65x6Cx6Cx6F<-%68%65%6C%6C%6Ffuente
Tienes que codificar en porcentaje | codificar los caracteres especiales. Por ejemplo, en lugar de esto:
escribe esto:
Entonces
@se reemplaza con%40.fuente