Глобальний проксі Git не потрібен лише тому, що одному проєкту треба інше з’єднання. Наявна робоча копія має власну локальну конфігурацію, тож зміна може залишитися в цьому репозиторії.

Приклади використовують поточні команди git config set/get/unset. Каталог проєкту, віддалений URL та документаційний IP — заповнювачі. Для тесту публічного репозиторію, де дозволені публічні проксі, виберіть кандидата зі списку HTTP-проксі.

git -C project config set --local http.proxy http://203.0.113.10:8080
git -C project ls-remote origin

URL проксі містить транспортну схему. Віддалений репозиторій HTTPS може використовувати звичайний HTTP-проксі з CONNECT; схема HTTPS віддаленого URL не вимагає змінювати URL проксі на HTTPS.

Перевірте, що Git справді вибрав

За неочікуваного результату перевірте значення, вибране для фактичного віддаленого URL:

git -C project config get --show-origin \
  --url=https://example.com/team/project.git http.proxy

У запиті використовуйте справжній віддалений HTTPS-репозиторій. Git може мати системні, користувацькі, репозиторні, командні та URL-специфічні налаштування. Перегляд лише глобального http.proxy може пропустити конкретніше правило. Вивід походження допомагає знайти файл або джерело командного рядка за результатом.

Локальне налаштування стосується HTTP-доступу з цього репозиторію, а не лише певної гілки. Репозиторій із кількома віддаленими HTTP-адресами може використовувати його й для інших, крім першої перевіреної. Для вужчого зіставлення є URL-специфічні HTTP-налаштування.

Поки робочої копії немає

Під час початкового клонування вирішіть, чи має перевизначення зберегтися; щоб обмежити його цим викликом Git, використовуйте:

git -c http.proxy=http://203.0.113.10:8080 \
  clone https://example.com/team/project.git

Перевизначення командного рядка саме не стає постійним записом конфігурації нової робочої копії. Задайте локальне значення пізніше, якщо наступні fetch мають використовувати цей маршрут.

Віддалений репозиторій SSH — інший випадок

Віддалена адреса, що починається з git@host: або ssh://, використовує SSH. Налаштування HTTP-проксі Git не перетворює її на HTTP-передачу. Перед заміною робочого IP проксі лише через подальший збій операції SSH перевірте транспорт віддаленої адреси.

Коли локальне перевизначення вже не потрібне, видаліть лише цей ключ:

git -C project config unset --local http.proxy

Видалення знову дає діяти застосовній конфігурації інших джерел. Це не команда видалення всіх налаштувань проксі на машині.

Схожі статті