Anda tidak memerlukan proksi Git global hanya kerana satu projek memerlukan sambungan berbeza. Salinan kerja sedia ada mempunyai konfigurasi setempat sendiri, jadi perubahan boleh kekal pada repositori itu.

Contoh ini menggunakan perintah semasa git config set/get/unset. Direktori projek, URL jauh dan IP dokumentasi ialah pemegang tempat. Untuk ujian repositori awam yang membenarkan proksi awam, pilih calon daripada senarai proksi HTTP.

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

URL proksi merangkumi skim pengangkutannya. Remote HTTPS boleh menggunakan proksi HTTP biasa yang menyokong CONNECT; skim HTTPS remote tidak memerlukan URL proksi ditukar kepada HTTPS.

Periksa apa yang benar-benar dipilih Git

Jika hasil tidak dijangka, periksa nilai yang dipilih untuk URL jauh sebenar:

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

Gunakan remote HTTPS sebenar anda dalam pertanyaan itu. Git boleh mempunyai tetapan sistem, pengguna, repositori, baris perintah dan khusus URL. Melihat nilai global http.proxy sahaja boleh terlepas peraturan lebih khusus. Output asal membantu mengenal pasti fail atau sumber baris perintah di sebalik hasil.

Tetapan setempat terpakai pada akses berasaskan HTTP daripada repositori itu, bukan hanya cabang tertentu. Repositori dengan beberapa remote HTTP boleh menggunakannya untuk lebih daripada remote yang mula-mula diuji. Tetapan HTTP khusus URL tersedia jika memerlukan padanan lebih sempit.

Sebelum salinan kerja wujud

Untuk clone awal, pilih sama ada tindihan perlu kekal; untuk menghadkannya pada panggilan Git itu sahaja, gunakan:

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

Tindihan baris perintah tidak dengan sendirinya menjadi entri konfigurasi kekal dalam salinan baharu. Tetapkan nilai setempat selepas itu jika fetch kemudian perlu menggunakan laluan tersebut.

Remote SSH ialah kes berbeza

Remote yang bermula dengan git@host: atau ssh:// menggunakan SSH. Tetapan proksi HTTP Git tidak menukarnya kepada pemindahan HTTP. Periksa pengangkutan remote sebelum menggantikan IP proksi yang berfungsi hanya kerana operasi SSH masih gagal.

Apabila tindihan setempat tidak diperlukan, buang kunci itu sahaja:

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

Membuangnya mendedahkan semula konfigurasi yang terpakai daripada sumber lain. Ini bukan perintah untuk memadam semua tetapan proksi pada mesin.

Artikel berkaitan