Menggunakan Proxy untuk Satu Repositori Git
Atur proxy HTTP lokal repositori, periksa konfigurasi yang dipilih Git untuk URL remote, dan hapus penggantinya saat tidak diperlukan lagi.
Anda tidak memerlukan proxy Git global hanya karena satu proyek membutuhkan koneksi berbeda. Checkout yang sudah ada memiliki konfigurasi lokal sendiri, jadi perubahan dapat disimpan khusus untuk repositori itu.
Contoh ini memakai perintah git config set/get/unset yang sekarang. Direktori proyek, URL remote, dan IP dokumentasi adalah placeholder. Untuk pengujian repositori publik yang mengizinkan proxy publik, pilih kandidat dari daftar proxy HTTP.
git -C project config set --local http.proxy http://203.0.113.10:8080
git -C project ls-remote origin
URL proxy menyertakan skema transportasinya. Remote HTTPS dapat memakai proxy HTTP biasa yang mendukung CONNECT; skema HTTPS remote tidak mengharuskan URL proxy diubah menjadi HTTPS.
Periksa apa yang benar-benar dipilih Git
Jika hasilnya tidak sesuai harapan, periksa nilai yang dipilih untuk URL remote sebenarnya:
git -C project config get --show-origin \
--url=https://example.com/team/project.git http.proxy
Gunakan remote HTTPS Anda yang sebenarnya dalam kueri tersebut. Git dapat memiliki pengaturan sistem, pengguna, repositori, baris perintah, dan khusus URL. Melihat nilai global http.proxy saja dapat melewatkan aturan yang lebih spesifik. Keluaran asal membantu menemukan berkas atau sumber baris perintah di balik hasil.
Pengaturan lokal berlaku untuk akses berbasis HTTP dari repositori itu, bukan hanya cabang tertentu. Repositori dengan beberapa remote HTTP dapat memakainya untuk lebih dari remote yang pertama diuji. Pengaturan HTTP khusus URL tersedia jika perlu pencocokan lebih sempit.
Sebelum checkout ada
Untuk clone awal, pilih apakah penggantian harus menetap; untuk membatasinya pada pemanggilan Git tersebut, gunakan:
git -c http.proxy=http://203.0.113.10:8080 \
clone https://example.com/team/project.git
Penggantian baris perintah tidak otomatis menjadi entri konfigurasi permanen dalam checkout baru. Atur nilai lokal sesudahnya jika fetch berikutnya harus memakai rute itu.
Remote SSH adalah kasus berbeda
Remote yang diawali git@host: atau ssh:// memakai SSH. Pengaturan proxy HTTP Git tidak mengubahnya menjadi transfer HTTP. Periksa transportasi remote sebelum mengganti IP proxy yang berfungsi hanya karena operasi SSH masih gagal.
Saat penggantian lokal tidak diperlukan lagi, hapus kunci itu saja:
git -C project config unset --local http.proxy
Menghapusnya membuat konfigurasi yang berlaku dari sumber lain kembali digunakan. Ini bukan perintah untuk menghapus semua pengaturan proxy di mesin.