Δεν χρειάζεστε καθολικό proxy Git μόνο επειδή ένα έργο θέλει διαφορετική σύνδεση. Ένα υπάρχον αντίγραφο εργασίας έχει δική του τοπική διαμόρφωση, οπότε μπορείτε να κρατήσετε την αλλαγή σε εκείνο το αποθετήριο.

Τα παραδείγματα χρησιμοποιούν τις τρέχουσες εντολές git config set/get/unset. Ο κατάλογος έργου, το απομακρυσμένο URL και η IP τεκμηρίωσης είναι ενδεικτικά. Για δοκιμή δημόσιου αποθετηρίου όπου επιτρέπονται δημόσιοι proxy, επιλέξτε υποψήφιο από τη λίστα HTTP proxy.

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

Το URL του proxy περιέχει το σχήμα μεταφοράς του. Ένα απομακρυσμένο HTTPS μπορεί να χρησιμοποιεί συνηθισμένο HTTP proxy με CONNECT· το σχήμα HTTPS του απομακρυσμένου δεν απαιτεί αλλαγή του URL του proxy σε 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 μπορεί να τη χρησιμοποιεί και για άλλα εκτός του πρώτου που δοκιμάστηκε. Υπάρχουν ρυθμίσεις HTTP ανά URL για στενότερη αντιστοίχιση.

Πριν υπάρξει το αντίγραφο εργασίας

Για την αρχική κλωνοποίηση, επιλέξτε αν η παράκαμψη πρέπει να παραμείνει· για να την περιορίσετε σε εκείνη την κλήση 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 proxy του Git δεν το μετατρέπει σε μεταφορά HTTP. Ελέγξτε τη μεταφορά του απομακρυσμένου πριν αντικαταστήσετε λειτουργική IP proxy μόνο επειδή μια λειτουργία SSH αποτυγχάνει ακόμη.

Όταν δεν θέλετε πια την τοπική παράκαμψη, αφαιρέστε μόνο αυτό το κλειδί:

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

Η αφαίρεση αφήνει ξανά να ισχύσει εφαρμόσιμη διαμόρφωση άλλων πηγών. Δεν είναι εντολή διαγραφής όλων των ρυθμίσεων proxy του μηχανήματος.

Σχετικά άρθρα