Δρομολόγηση μέσω proxy για υπομονάδες Git
Εξετάστε URL υπομονάδων, τύπους μεταφοράς και ρυθμίσεις αποθετηρίων όταν το κύριο Git checkout λειτουργεί μέσω proxy αλλά τα θυγατρικά όχι.
Η επιτυχής κλωνοποίηση του κύριου αποθετηρίου δεν ελέγχει τις υπομονάδες του. Μια υπομονάδα είναι άλλο αποθετήριο Git, πιθανώς σε διαφορετικό host και με διαφορετική μεταφορά.
Ξεκινήστε διαβάζοντας τα δηλωμένα URL:
git -C project config --file .gitmodules --get-regexp '^submodule\..*\.url$'
git -C project submodule status --recursive
Ένα γονικό αποθετήριο που ανακτήθηκε μέσω HTTPS μπορεί να περιέχει υπομονάδα με git@host:. Μια ρύθμιση HTTP proxy δεν ρυθμίζει αυτή τη σύνδεση SSH. Τα σχετικά URL υπομονάδων πρέπει επίσης να επιλύονται ως προς το κατάλληλο remote του υπερκείμενου έργου, όχι κάποια διεύθυνση ιστού που υποθέσατε από το όνομά του.
Οι τοπικές ρυθμίσεις έχουν συγκεκριμένο πεδίο
Μια τοπική εγγραφή http.proxy ανήκει στο αποθετήριο του οποίου το αρχείο ρυθμίσεων την περιέχει. Μην υποθέτετε ότι ο έλεγχος μόνο του γονέα αποκαλύπτει κάθε ενεργή ρύθμιση σε ένα αρχικοποιημένο θυγατρικό αποθετήριο.
Για προσωρινό ορισμό HTTPS proxy σε αναδρομική ενημέρωση, μπορείτε να δώσετε ρυθμίσεις Git στη γραμμή εντολών για εκείνη την κλήση:
git -C project -c http.proxy=http://203.0.113.10:8080 \
submodule update --init --recursive
Αντικαταστήστε το ενδεικτικό τελικό σημείο. Για δημόσιες υπομονάδες HTTPS σε διαδρομή που επιτρέπει δημόσια proxy, η λίστα HTTP proxy παρέχει υποψήφιες διευθύνσεις. Αυτό δεν μετατρέπει URL υπομονάδων SSH σε HTTPS, ενώ αξίζει να εξετάσετε και πιο συγκεκριμένες ρυθμίσεις ανά URL όταν η επιλεγμένη διαδρομή είναι απροσδόκητη.
Όταν άλλαξε το καταχωρισμένο URL
Το Git καταχωρίζει τοπικά τις ρυθμίσεις υπομονάδας κατά την αρχικοποίηση. Αν άλλαξε το URL της στο έργο, συγκρίνετε την τρέχουσα δήλωση με την τοπικά καταχωρισμένη τιμή πριν αποφασίσετε ότι το proxy δεν λειτουργεί. Η τεκμηριωμένη λειτουργία sync ενημερώνει τα καταχωρισμένα URL από τη δήλωση του έργου· δεν είναι η ίδια ρύθμιση δικτυακού proxy.
Σε αποτυχίες εμφωλευμένων υπομονάδων, σημειώστε την ακριβή διαδρομή και το remote που αναφέρει το σφάλμα. Μια αναδρομική λειτουργία μπορεί να επικοινωνεί με πολλούς host· ένας εσωτερικός ίσως χρειάζεται εξαίρεση άμεσης σύνδεσης ενώ ένας δημόσιος χρησιμοποιεί το proxy.
Ξεχωρίστε τα σφάλματα μεταφοράς από τα σφάλματα αποθετηρίου. Ένα μη διαθέσιμο commit, η άρνηση πρόσβασης από το αποθετήριο και η αποτυχία σύνδεσης με το proxy είναι διαφορετικές αιτίες του ίδιου γενικού αποτελέσματος «submodule update failed».