Mam konfigurację git proxy jako „http.proxy = http: // userId: pwd @ 123 @ipaddress: port”, ale podczas klonowania zdalnego projektu pojawia się błąd
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
Jak uniknąć znaku „@” w haśle?
Uwaga Pls: nie mogę zmienić hasła.
Uwaga (listopad 2013)
Kodowanie adresu URL (zwłaszcza dowolnego znaku specjalnego w haśle) jest właściwym rozwiązaniem. Wymienionych poniżej jest tylko do zdalnego repo URL, a nie dla proxy używane do rozwiązywania powiedział zdalnego repo URL.
.netrc
Informacje na temat kodowania zawiera sekcja „ Kodowanie procentowe ”:
Oryginalna odpowiedź (maj 2011)
Dwie uwagi:
posiadanie hasła do serwera dostępnego przez http (nie https) jest ... dziwne. Hasło nie jest szyfrowane podczas komunikacji między klientem a serwerem;
możesz ustawić
.netrc
(lub_netrc
dla Windows) w swoim$HOME
, z następującą zawartościąZawijanie używane przez Gita za sceną poradziłoby sobie z kodowaniem dobrze
@
lub nie@
.źródło
http://123@ipaddress:port/...
jako adresu do klonowania, bez konieczności dodawania informacji o użytkowniku i haśle.URL koduje nietypowe znaki.
Lista kodów URL.
W moim pliku konfiguracyjnym git zakodowałem `` tylko '' nazwę użytkownika, na przykład:
źródło
Na przykład hasło przechowywane w zmiennej środowiskowej
GIT_PASSWORD
nazwa użytkownika -GIT_USERNAME
, a następnie:Wyjaśnienie:
echo -n $GIT_PASSWORD | hexdump -v -e '"x" 1/1 "%02X"' | tr x %
$GIT_REPOSITORY
<-hello
hello
<-x68x65x6Cx6Cx6F
x68x65x6Cx6Cx6F
<-%68%65%6C%6C%6F
źródło
Musisz zakodować w procentach | zakodować znaki specjalne. Np. Zamiast tego:
piszesz to:
Więc
@
zostaje zastąpiony%40
.źródło