У меня есть конфигурация прокси-сервера git как http.proxy = http: // userId: pwd @ 123 @ipaddress: port, но при клонировании удаленного проекта я получаю ошибку как
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
Как избежать символа «@» в пароле?
Пожалуйста, обратите внимание: я не могу изменить пароль.
Примечание (ноябрь 2013 г.)
Кодирование URL-адреса (особенно любого специального символа в пароле) - правильное решение. Упомянуто ниже только для URL удаленного репо, а не для прокси используется для разрешения сказал URL удаленного репо.
.netrc
Информацию о указанной кодировке см. В разделе « Процентное кодирование »:
Оригинальный ответ (май 2011 г.)
Два комментария:
иметь пароль для сервера, доступ к которому осуществляется с помощью http (не https) ... странно. Пароль не шифруется при обмене данными между клиентом и сервером;
вы можете настроить
.netrc
(или_netrc
для Windows) в своем$HOME
, со следующим содержимымCurl, используемый Git b за сценой, справился бы с кодировкой нормально,
@
или нет@
.источник
http://123@ipaddress:port/...
в качестве адреса для клонирования без необходимости добавлять информацию о пользователе и пароле.URL кодирует любые необычные символы.
Список кодов URL.
Например, в моем конфигурационном файле git я закодировал «просто» имя пользователя:
источник
Например, ваш пароль хранится в переменной окружения
GIT_PASSWORD
, имя пользователя -GIT_USERNAME
, затем:Объяснение:
echo -n $GIT_PASSWORD | hexdump -v -e '"x" 1/1 "%02X"' | tr x %
$GIT_REPOSITORY
<-hello
hello
<-x68x65x6Cx6Cx6F
x68x65x6Cx6Cx6F
<-%68%65%6C%6C%6F
источник
Надо проц-кодировать | закодируйте специальные символы. Например, вместо этого:
вы пишете это:
Так
@
заменяется на%40
.источник