Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье рассматриваются проблемы, которые могут возникнуть при попытке выполнить функцию push-отправки Git или Git в репозиторий Azure DevOps.
Область применения: Azure DevOps Services, Azure DevOps Server
Проблемы при выполнении клонирования Git или отправки Git в репозитории Azure DevOps
При попытке клонировать или отправить репозиторий в GitHub некоторые проблемы с конфигурацией прокси-сервера, SSL-сертификатом или кэшом учетных данных могут привести к сбою операции клонирования Git.
Контрольный список по устранению неполадок
Чтобы определить причину проблем:
Включите подробную трассировку, чтобы настроить детальный уровень трассировки для выполняемых команд Git.
Задайте следующие переменные в последовательности и выполните команды Git для каждой переменной набора, чтобы получить дополнительные сведения об ошибках.
GIT_TRACE=1
GIT_TRACE_PACKET=1
GIT_TRACE_CURL_NO_DATA=1
GIT_CURL_VERBOSE=1
Уровень трассировки для этих переменных предоставляет дополнительные сведения, аналогичные следующему примеру об ошибках, вызывающих проблему:
Дополнительные сведения о переменных среды Git см. в разделе "Внутренние элементы Git — переменные среды".
Причина 1. Git не может подключиться через прокси-сервер
Если вы используете прокси-сервер, но конфигурация Git не настроена для подключения через прокси-сервер, может появиться сообщение об ошибках 407 или 502. Эта проблема также возникает, когда подключение не удается установить через прокси-сервер, и отображаются следующие ошибки: "Не удалось получить доступ к <your github url
>" или "Не удалось разрешить узел github.com
".
Решение. Настройка Git для использования прокси-сервера
Запустите git config --list
, чтобы получить список всех конфигураций Git в системе, и проверьте, используется ли прокси-сервер.
Если вы видите несколько файлов конфигурации, таких как репозиторий или корневой каталог системы, выполните git config --list --show-origin
команду, а затем увидите путь, из которого Git извлекает сведения о конфигурации.
Если в списке конфигураций не найти прокси-сервер, выполните git config --global
команду, чтобы задать прокси-сервер в конфигурации.
Например, http.proxy http://proxyUsername:proxyPassword@proxy.server.com:port
.
Чтобы использовать конкретный прокси-сервер для некоторых URL-адресов, настройте URL-адрес прокси-сервера в подразделе конфигурации Git, как http.<url\>.key notation:
показано в следующем примере:
git config --global
http.https://domain.com.proxy http://proxyUsername:proxyPassword@proxy.server.com:port
Если прокси-сервер использует https
, задайте конфигурацию Git с https
URL-адресом прокси-сервера в приведенном выше примере. В противном случае сохраните http
.
Дополнительные сведения о конфигурации Git см . в документации по конфигурации Git.
Причина 2. Git использует локальный самозаверяющий сертификат
Если Git использует локальный самозаверяющий сертификат, может отобразиться сообщение об ошибке "Проблема с SSL-сертификатом: не удалось получить сертификат локального издателя".
Решение 1. Отключение проверки TLS/SSL
Если вы установили локальный сервер Team Foundation Server (TFS) и отключите проверку TLS/SSL, выполняемую Git, выполните следующую команду:
git config --global http.sslVerify false
Решение 2. Настройка самозаверяющего сертификата в Git
Если вы хотите продолжить проверку TLS/SSL, которую выполняет Git, выполните следующие действия, чтобы добавить корневой сертификат в локальную Git:
Экспорт корневого сертификата в кодировке X.509 (Base-64). Cer) файл, выполнив следующие действия:
Откройте браузер Microsoft Edge и введите URL-адрес сервера TFS в адресной строке, например
https://<servername>/tfs
.На адресной строке выберите
значок, а затем щелкните "Подключение" безопасной ссылкой.
Щелкните значок, чтобы открыть окно сертификации.
На вкладке "Путь сертификации" выберите левый верхний сертификат, который является корневым сертификатом.
Выберите "Просмотреть сертификат", чтобы открыть окно "Сертификат" для корневого сертификата.
На вкладке "Сведения" выберите "Копировать в файл".
В мастере экспорта сертификатов нажмите кнопку "Далее", а затем выберите в кодировке Base-64 x.509 (). Формат ФАЙЛА CER для экспорта.
Сохраните корневой сертификат на локальном диске.
Настройте Git для использования локального каталога для хранилища сертификатов Git, выполнив следующие действия.
Перейдите к пути C:\Program Files\Git\bin на локальном диске, а затем создайте копию файла curl-ca-bundle.crt .
Примечание.
- При установке Git для Windows (
msysgit
) на устройстве файл curl-ca-bundle.crt хранится в каталоге Program Files. Этот файл является корневым хранилищем сертификатов для git.exe, который содержит все сертификаты, доверенные Git. - Файл curl-ca-bundle.crt, который хранится на каждом устройстве, является частным для локального клиента Windows. Текстовый файл содержит конец строки UNIX(
\n
). - В серии Git для Windows 2.x путь изменится на C:\Program Files (x86)\Git\mingw32\ssl\certs\ca-bundle.crt или C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt. Если вы используете 32-разрядный клиент Windows, можно исправить путь к папке, чтобы часть Program Files не отображалась с x86.
- При установке Git для Windows (
Скопируйте файл curl-ca-bundle.crt в каталог профиля пользователя (C:\Users\<yourname>). Или выполните команду копирования, аналогичную примеру
copy "C:\Program Files (x86)\Git\bin\curl-ca-bundle.crt" C:\Users\<yourname>
.Выполните следующую команду, чтобы настроить Git для использования локальной копии хранилища сертификатов из клиента Windows:
git config --global http.sslCAInfo C:/Users/<yourname>/curl-ca-bundle.crt
Добавьте экспортируемый корневой сертификат в локальную копию хранилища сертификатов Git, выполнив следующие действия.
Откройте экспортируемый корневой сертификат в Блокноте, а затем скопируйте все содержимое в буфер обмена.
Откройте файл curl-ca-bundle.crt, перейдя в путь C:/Users/yourname>/<curl-ca-bundle.crt в текстовом редакторе.
Совет
С помощью средства unix2dos можно изменить конец строки в файле с \n на \r\n и открыть файл в Блокноте.
Добавьте запись для корневого сертификата в конце и вставьте содержимое сертификата в файл curl-ca-bundle.crt .
Сохраните файл curl-ca-bundle.crt .
Выполните операцию клонирования, чтобы проверить, разрешена ли ошибка SSL.
Причина 3. Ошибка проверки подлинности или проблемы с кэшем учетных данных
Если имя учетной записи или пароль домена изменились или возникает ошибка проверки подлинности, возможно, возникла проблема с проверкой подлинности и кэшем учетных данных.
Решение. Сброс диспетчера учетных данных Git (GCM)
Чтобы устранить ошибки проверки подлинности или проблемы с кэшем учетных данных, начните с контрольного списка устранения неполадок, чтобы получить сведения об ошибке, а затем выполните следующие действия.
git config --list
Выполните команду, а затем проверьте, используется ли диспетчер учетных данных Git (GCM).credential.helper
Если для этого параметра задано значение manager, GCM используется.- Сбросьте GCM, выполнив следующие действия.
git config --global --unset credential.helper
Выполните команду, чтобы отменить задание GCM.- Выполните команду,
git config credential.helper manager
чтобы задать GCM обратно. Кроме того, выполните следующие действия, чтобы сначала удалить кэш учетных данных:- При отмене настройки найдите диспетчер учетных данных в поиске Windows, выберите "Открыть", а затем удалите все учетные данные для репозитория Git.
- Перейдите к пути %localappdata%/GitCredentialManager , а затем удалите файл tenant.cache .
- Задайте GCM обратно, выполнив
git config credential.helper manager
команду.
- Выполните операцию клонирования, чтобы проверить, устранена ли проблема.
Примечание. В зависимости от версии Git для Windows credential.helper
значение будет отличаться. Дополнительные сведения см. в таблице, приведенной ниже.
Версии Git для Windows | диспетчер учетных данных Git для Windows; | Ядро диспетчера учетных данных Git | Диспетчер учетных данных Git (переименован из GCM Core) |
---|---|---|---|
2.27 и более ранние версии | manager |
||
2.28 до 2.33.0 | manager (необязательно) |
manager-core (необязательно) |
|
2.33.1 до 2.34.0 | manager-core |
||
2.34.1 до 2.38 | manager-core |
||
2.39 и более поздних версий | manager |