You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: book/04-git-server/sections/protocols.asc
+14-14Lines changed: 14 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,10 +3,10 @@
3
3
Το Git μπορεί να χρησιμοποιήσει τέσσερα συνηθισμένα πρωτόκολλα για την μεταφορά δεδομένων: Local, HTTP, Secure Shell (SSH) και Git.
4
4
Θα συζητήσουμε τι είναι αυτά και σε ποιες βασικές περιστάσεις θα θέλαμε (ή δεν θα θέλαμε) να τα χρησιμοποιήσουμε.
5
5
6
-
==== Τοπικό πρωτόκολλο
6
+
==== Το τοπικό πρωτόκολλο
7
7
8
8
(((protocols, local)))
9
-
Το πιο βασικό είναι το _τοπικό πρωτόκολλο_ (_local_protocol_), στο οποίο το απομακρυσμένο αποθετήριο βρίσκεται σε άλλο κατάλογο στον δίσκο.
9
+
Το πιο βασικό είναι το _τοπικό πρωτόκολλο_ (_local protocol_), στο οποίο το απομακρυσμένο αποθετήριο βρίσκεται σε άλλο κατάλογο στον δίσκο.
10
10
Αυτό χρησιμοποιείται συχνά εάν όλοι στην ομάδα μας έχουν πρόσβαση σε ένα κοινό σύστημα αρχείων (filesystem), όπως μία προσάρτηση NFS (NFS mount) ή στην λιγότερο πιθανή περίπτωση που όλοι οι χρήστες συνδέονται στον ίδιο υπολογιστή.
11
11
Η τελευταία περίπτωση δεν θα ήταν ιδανική, διότι όλες οι περιπτώσεις κώδικα του αποθετηρίου θα κατοικούσαν στον ίδιο υπολογιστή, καθιστώντας πολύ πιο πιθανή μια καταστροφική απώλεια.
Το Git λειτουργεί ελαφρώς διαφορετικά αν καθορίσουμε ρητά το `file://` στην αρχή της διεύθυνσης URL.
30
30
Αν καθορίσουμε ακριβώς την διαδρομή, το Git προσπαθεί να χρησιμοποιήσει σκληρούς συνδέσμους (hardlinks) ή να αντιγράψει απευθείας τα αρχεία που χρειάζονται.
31
-
Εάν καθορίσουμε το `file://`, το Git ενεργοποιεί τις διαδικασίες που συνήθως χρησιμοποιεί για την μεταφορά δεδομένων μέσω δικτύου, μία μέθοδο μεταφοράς των δεδομένων γενικά πολύ λιγότερο αποτελεσματική.
31
+
Εάν καθορίσουμε το `file://`, το Git ενεργοποιεί τις διαδικασίες που συνήθως χρησιμοποιεί για τη μεταφορά δεδομένων μέσω δικτύου, μία μέθοδο μεταφοράς των δεδομένων γενικά πολύ λιγότερο αποτελεσματική.
32
32
Ο βασικός λόγος που θα θέλαμε να χρησιμοποιήσουμε το `file://` είναι η περίπτωση κατά την οποία θέλουμε ένα καθαρό αντίγραφο του αποθετηρίου με εξωτερικές αναφορές ή αντικείμενα που απομένουν - συνήθως μετά από εισαγωγή από ένα άλλο σύστημα ελέγχου εκδόσεων ή κάτι παρόμοιο (βλ. <<_ git_internals>> για σχετικές εργασίες συντήρησης).
33
33
Στη παρακάτω παράδειγμα θα χρησιμοποιήσουμε το μονοπάτι χωρίς το `file://` επειδή αυτό είναι σχεδόν πάντα πιο γρήγορο.
Τα πλεονεκτήματα των αποθετηρίων που βασίζονται σε αρχεία είναι ότι είναι απλά και χρησιμοποιούν τα υπάρχοντα δικαιώματα σε αρχεία και πρόσβαση στο δίκτυο.
47
47
Εάν έχουμε ήδη ένα κοινό σύστημα αρχείων στο οποίο έχει πρόσβαση ολόκληρη η ομάδα μας, η εγκατάσταση ενός αποθετηρίου είναι πολύ εύκολη.
48
-
Μπορείτε να κολλήσετε ένα γυμνό (χωρίς αρχεία) αντίγραφο του αποθετηρίου κάπου όπου ο καθένας έχει πρόσβαση και να ορίσουμε τα δικαιώματα ανάγνωσης/εγγραφής όπως θα κάναμε για οποιονδήποτε άλλο κοινόχρηστο κατάλογο.
48
+
Μπορούμε να κολλήσουμε ένα γυμνό (χωρίς αρχεία) αντίγραφο του αποθετηρίου κάπου όπου ο καθένας έχει πρόσβαση και να ορίσουμε τα δικαιώματα ανάγνωσης/εγγραφής όπως θα κάναμε για οποιονδήποτε άλλο κοινόχρηστο κατάλογο.
49
49
Θα συζητήσουμε πώς μπορούμε να εξαγωγής ένα γυμνό αντίγραφο αποθετηρίου για αυτόν τον σκοπό αυτό στο <<_git_on_the_server>>.
50
50
51
51
Αυτή είναι επίσης μια καλή επιλογή για γρήγορη λήψη της εργασίας από το αποθετήριο εργασίας κάποιου άλλου.
Το πρωτόκολλο ``έξυπνο'' HTTP έχει παρόμοια λειτουργία με τα πρωτόκολλα SSH ή Git αλλά τρέχει πάνω από τις τυπικές θύρες για HTTP/S και μπορεί να χρησιμοποιήσει διάφορους μηχανισμούς HTTP ελέγχου ταυτότητας, που σημαίνει ότι είναι συχνά πιο εύκολο για τον χρήστη από ό,τι είναι για παράδειγμα το SSH, αφού είναι δυνατό να χρησιμοποιηθεί βασικός έλεγχος ταυτότητας με όνομα χρήστη/κωδικό πρόσβασης, αντί να χρειάζεται να ρυθμίσετε τα κλειδιά SSH.
78
+
Το πρωτόκολλο ``έξυπνο'' HTTP έχει παρόμοια λειτουργία με τα πρωτόκολλα SSH ή Git αλλά τρέχει πάνω από τις τυπικές θύρες για HTTP/S και μπορεί να χρησιμοποιήσει διάφορους μηχανισμούς HTTP ελέγχου ταυτότητας, που σημαίνει ότι είναι συχνά πιο εύκολο για τον χρήστη από ό,τι είναι για παράδειγμα το SSH, αφού είναι δυνατό να χρησιμοποιηθεί βασικός έλεγχος ταυτότητας με όνομα χρήστη/κωδικό πρόσβασης, αντί να χρειάζεται να ρυθμίσουμε τα κλειδιά SSH.
79
79
80
80
Αυτός φαίνεται ότι είναι πλέον ο πιο δημοφιλής τρόπος χρήσης του Git, αφού μπορεί να ρυθμιστεί τόσο για να ανώνυμο τράβηγμα όπως το πρωτόκολλο `git://` όσο και προώθηση με έλεγχο ταυτότητας και κρυπτογράφηση όπως το πρωτόκολλο SSH.
81
81
Αντί να χρειάζεται να ορίσουμε διαφορετικές διευθύνσεις URL για αυτά τα δύο πράγματα, μπορούμε πλέον να χρησιμοποιήσουμε μια ενιαία διεύθυνση URL και για τα δύο.
@@ -113,7 +113,7 @@ $ chmod a+x hooks/post-update
113
113
$ git clone https://example.com/gitproject.git
114
114
----
115
115
116
-
Στη συγκεκριμένη περίπτωση, χρησιμοποιούμε τη διαδρομή `/var/www/htdocs` που είναι κοινή για διακομιστές Apache, αλλά μπορείτε να χρησιμοποιήσετε οποιονδήποτε στατικό διακομιστή ιστού – απλά τοποθετούμε το γυμνό αποθετήριο στην διαδρομή του.
116
+
Στη συγκεκριμένη περίπτωση, χρησιμοποιούμε τη διαδρομή `/var/www/htdocs` που είναι κοινή για διακομιστές Apache, αλλά μπορούμε να χρησιμοποιήσουμε οποιονδήποτε στατικό διακομιστή ιστού --απλά τοποθετούμε το γυμνό αποθετήριο στη διαδρομή του.
117
117
Τα δεδομένα Git διακομίζονται ως απλά στατικά αρχεία (βλ. <<_git_internals>> για λεπτομέρειες σχετικά με τον τρόπο με τον οποίο εξυπηρετείται).
118
118
119
119
Σε γενικές γραμμές, επιλέγουμε είτε να τρέξουμε έναν διακομιστή με έξυπνο HTTP για ανάγνωση/εγγραφή είτε απλά να έχουμε πρόσβαση στα αρχεία για ανάγκνωση μόνο με τον χαζό τρόπο.
Αν χρησιμοποιούμε HTTP για την ταυτοποίηση προώθησης, η παροχή των διαπιστευτηρίων είναι κάποιες φορές πιο πολύπλοκη από την χρήση κλειδιών μέσω SSH.
141
141
Ωστόσο, υπάρχουν αρκετά εργαλεία προσωρινής αποθήκευσης διαπιστευτηρίων που μπορούμε να χρησιμοποιήσουμε, συμπεριλαμβανομένης της πρόσβασης μέσω Keychain στο OS X και του Credential Manager στα Windows, που καθιστούν την διαδικασία ταυτοποίησης αρκετά ανώδυνη.
142
-
Διαβάστε την ενότητα <<_credential_caching>> για να δείτε πώς μπορείτε να ρυθμίσετε ασφαλή προσωρινή αποθήκευση κωδικού πρόσβασης HTTP στο σύστημά σας.
142
+
Στην ενότητα <<_credential_caching>> μπορούμε να δούμε πώς μπορούμε να ρυθμίσουμε ασφαλή προσωρινή αποθήκευση κωδικού πρόσβασης HTTP στο σύστημά μας.
Για να διαθέσουμε ένα αποθετήριο πάνω από το πρωτόκολλο Git, πρέπει να δημιουργήσουμε το αρχείο `git-daemon-export-ok` – ο δαίμονας δεν θα διαθέτει το αποθετήριο αν δεν έχει αυτό το αρχείο – αλλά πέρα από αυτό δεν υπάρχει καμία ασφάλεια.
188
188
Είτε το αποθετήριο Git είναι διαθέσιμο σε όλους να το κλωνοποιήσουν είτε σε κανέναν.
189
189
Αυτό σημαίνει ότι γενικά δεν γίνεται προώθηση πάνω από αυτό το πρωτόκολλο.
190
-
Μπορούμε να ενεργοποιήσουμε την πρόσβαση προώθησης· αλλά δεδομένης της έλλειψης ταυτοποίησης, αν ενεργοποιήσουμε την πρόσβαση προώθησης, οποιοσδήποτε βρίσκει το URL του έργου σας στο Internet, θα μπορεί να προωθήσει στο έργο σας.
190
+
Μπορούμε να ενεργοποιήσουμε την πρόσβαση προώθησης· αλλά δεδομένης της έλλειψης ταυτοποίησης, αν ενεργοποιήσουμε την πρόσβαση προώθησης, οποιοσδήποτε βρίσκει το URL του έργου μας στο Internet, θα μπορεί να προωθήσει στο έργο μας.
191
191
Είναι προφανές ότι αυτή η συμπεριφορά είναι σπάνια επιθυμητή.
Γενικά, πρέπει να το συνδυάζουμε με πρόσβαση SSH ή HTTPS για τους λίγους προγραμματιστές που έχουν πρόσβαση προώθησης (εγγραφής) και οι υπόλοιποι προγραμματιστές θα χρησιμοποιούν το `git://' για πρόσβαση μόνο για ανάγνωση.
204
204
Επίσης είναι πιθανότατα το πιο δύσκολο πρωτόκολλο από πλευράς ρύθμισης.
205
205
Πρέπει να τρέχει το δικό του δαίμονα, που απαιτεί ρύθμιση `xinetd` ή κάτι παρόμοιο, το οποίο δεν είναι πάντα απλό να γίνει.
206
-
Απαιτεί επίσης πρόσβαση στην θύρα 9418 του τείχους προστασίας, θύρα που δεν είναι από τις τυποποιημένες θύρες που επιτρέπουν τα firewalls εταιρικών δικτύων.
207
-
XXX Πίσω από τα μεγάλα εταιρικά τείχη προστασίας, αυτή η XXX obscure θύρα είναι συνήθως μπλοκαρισμένη.
206
+
Απαιτεί επίσης πρόσβαση στην θύρα 9418 του τείχους προστασίας, θύρα που δεν είναι από τις τυποποιημένες θύρες που επιτρέπουν τα τείχη προστασίας εταιρικών δικτύων.
207
+
Πίσω από τα τείχη προστασίας μεγάλων εταιριών, αυτή η ασυνήθιστη θύρα είναι συνήθως μπλοκαρισμένη.
0 commit comments