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/git-daemon.asc
+2-6Lines changed: 2 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
(((αποθετήρια εξυπηρέτησης, πρωτόκολλο git)))
4
4
(((serving repositories, git protocol)))
5
-
Στη συνέχεια θα εγκαταστήσΟυμε έναν δαίμονα που θα εξυπηρετεί αποθετήρια μέσω του πρωτοκόλλου "`Git`".
5
+
Στη συνέχεια θα εγκαταστήσουμε έναν δαίμονα που θα εξυπηρετεί αποθετήρια μέσω του πρωτοκόλλου "`Git`".
6
6
Αυτή είναι μια συνήθης επιλογή για γρήγορη και χωρίς ταυτοποίηση πρόσβαση στα δεδομένα σας στο Git.
7
7
Να θυμάστε πως δεδομένου ότι πρόκειται για μια υπηρεσία χωρίς ταυτοποίηση, οτιδήποτε παρέχεται πάνω από αυτό το πρωτόκολλο είναι δημόσιο εντός του δικτύου του.
Ο διακόπτης `--reuseaddr` επιτρέπει στον διακομιστή να επανεκκινήσει χωρίς να αναμένει αποσύνδεση των παλαιών συνδέσεων, ο διακόπτης `--base-path` επιτρέπει την κλωνοποίηση έργων χωρίς να καθορίζεται ολόκληρη τη διαδρομή και η διαδρομή στο τέλος λέει στον δαίμονα Git πού να αναζητήσει αποθετήρια προς εξαγωγή.
@@ -54,8 +54,6 @@ WantedBy=multi-user.target
54
54
55
55
Σε άλλα συστήματα, ίσως θελήσετε να χρησιμοποιήσετε το `xinetd`, ένα script στο σύστημά σας `sysvinit` ή κάτι άλλο -- με την προϋπόθεση ότι μπορείτε δαιμονοποιήσετε αυτή την εντολή και να την παρακολουθείτε με κάποιον τρόπο.
56
56
57
-
Σε άλλα συστήματα, ίσως θελήσετε να χρησιμοποιήσετε το `xinetd`, ένα script στο σύστημά σας `sysvinit` ή κάτι άλλο -- εφόσον μπορείτε να δαιμονοποιήσετε αυτή την εντολή και να την παρακολουθείτε.
58
-
59
57
Στη συνέχεια, πρέπει να ενημερώσετε το Git ποια αποθετήρια επιτρέπουν την πρόσβαση σε διακομιστές Git χωρίς ταυτοποίηση.
60
58
Μπορείτε να το κάνετε σε κάθε αποθετήριο δημιουργώντας ένα αρχείο που ονομάζεται `git-daemon-export-ok`.
61
59
@@ -66,5 +64,3 @@ $ touch git-daemon-export-ok
66
64
----
67
65
68
66
Η παρουσία αυτού του αρχείου λέει στο Git ότι επιτρέπεται να εξυπηρετήσει αυτό το έργο χωρίς ταυτοποίηση.
==== Τοποθέτηση του γυμνού αποθετηρίου σε έναν διακομιστή
39
39
40
40
Τώρα που έχετε ένα γυμνό αντίγραφο του αποθετηρίου σας, το μόνο που χρειάζεται να κάνετε είναι να το βάλετε σε έναν διακομιστή και να ρυθμίσετε τα πρωτόκολλά σας.
41
-
Ας υποθέσουμε ότι έχετε δημιουργήσει έναν διακομιστή που ονομάζεται `git.example.com` στον οποίο έχετε πρόσβαση μέσω SSH και θέλετε να αποθηκεύσετε όλα τα αποθετήρια Git στον κατάλογο `/opt/git`.
41
+
Ας υποθέσουμε ότι έχετε δημιουργήσει έναν διακομιστή που ονομάζεται `git.example.com` στον οποίο έχετε πρόσβαση μέσω SSH και θέλετε να αποθηκεύσετε όλα τα αποθετήρια Git στον κατάλογο `/srv/git`.
42
42
Υποθέτοντας ότι το `/opt/git` υπάρχει σε αυτόν τον διακομιστή, μπορείτε να ρυθμίσετε το νέο αποθετήριό σας αντιγράφοντας το γυμνό αποθετήριο:
Σε αυτό το σημείο, άλλοι χρήστες που έχουν πρόσβαση SSH στον ίδιο διακομιστή ο οποίος έχει πρόσβαση ανάγνωσης στον κατάλογο `/opt/git` μπορούν να κλωνοποιήσουν τον αποθετήριό σας τρέχοντας
49
+
Σε αυτό το σημείο, άλλοι χρήστες που έχουν πρόσβαση SSH στον ίδιο διακομιστή ο οποίος έχει πρόσβαση ανάγνωσης στον κατάλογο `/srv/git` μπορούν να κλωνοποιήσουν τον αποθετήριό σας τρέχοντας
Αν ένας χρήστης συνδεθεί με SSH σε έναΝ διακομιστή και έχει δικαίωμα εγγραφής στον κατάλογο `/srv/git/my_project.git`, θα έχει αυτόματα δικαίωμα ώθησης.
57
57
58
-
Το Git θα προσθέσει αυτόματα δικαιώματα εγγραφής σε ομάδες σε ένα αποθετήριο σωστά εάν εκτελέσετε την εντολή `git init` με την επιλογή `--shared`. (((εντολές git, init, bare)))
58
+
Το Git θα προσθέσει αυτόματα δικαιώματα εγγραφής σε ομάδες σε ένα αποθετήριο σωστά εάν εκτελέσετε την εντολή `git init` με την επιλογή `--shared`.
59
+
Σημειώστε πως τρέχοντας αυτή την εντολή, δεν θα καταστρέψετε καμία υποβολή, αναφορά, κτλ. στην όλη διαδικασία. (((εντολές git, init, bare)))
59
60
60
61
[source,console]
61
62
----
@@ -91,7 +92,7 @@ $ git init --bare --shared
91
92
92
93
Υπάρχουν μερικοί τρόποι με τους οποίους μπορείτε να δώσετε πρόσβαση σε όλους στην ομάδα σας.
93
94
Ο πρώτος είναι να δημιουργήσετε λογαριασμούς για όλους, κάτι που είναι απλό, αλλά μπορεί να είναι κουραστικό.
94
-
Μπορεί να μην θέλετε να τρέξετε το `adduser` και να ορίσετε προσωρινούς κωδικούς πρόσβασης για κάθε χρήστη.
95
+
Μπορεί να μην θέλετε να τρέξετε το `adduser` (ή το εναλλακτικό `useradd`) και να ορίσετε προσωρινούς κωδικούς πρόσβασης για κάθε χρήστη.
95
96
96
97
Μια δεύτερη μέθοδος είναι να δημιουργήσετε έναν μοναδικό χρήστη 'git' στο μηχάνημα, να ζητήσετε από κάθε χρήστη που θα έχει πρόσβαση εγγραφής να σας στείλει ένα δημόσιο κλειδί SSH και να προσθέσετε αυτό το κλειδί στο αρχείο `~/.ssh/authorized_keys` του νέου χρήστη 'git'.
97
98
Σε αυτό το σημείο, όλοι θα μπορούν να έχουν πρόσβαση σε αυτό το μηχάνημα μέσω του χρήστη 'git'.
Copy file name to clipboardExpand all lines: book/04-git-server/sections/gitlab.asc
+6-7Lines changed: 6 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,6 @@
5
5
Αν ψάχνετε για έναν πιο σύγχρονο διακομιστή Git με πολλές λειτουργικότητες, υπάρχουν μερικές λύσεις ανοιχτού κώδικα που μπορείτε να εγκαταστήσετε αντ' αυτού.
6
6
Καθώς το GitLab είναι μία από τις πιο δημοφιλείς, θα δούμε την εγκατάσταση και χρήση του ως παράδειγμα.
7
7
Η εγκατάσταση του GitLab είναι λίγο πιο περίπλοκη από αυτή του GitWeb και πιθανότα απαιτεί περισσότερη συντήρηση, αλλά είναι μια επιλογή με πολύ περισσότερα χαρακτηριστικά.
8
-
Το GitLab είναι λίγο πιο πολύπλοκο από το GitWeb και ενδεχομένως απαιτεί περισσότερη συντήρηση, αλλά είναι μία πολύ πιο ολοκληρωμένη λύση όσον αφορά στα διαθέσιμες λειτουργικότητες.
9
8
10
9
==== Εγκατάσταση
11
10
@@ -20,13 +19,14 @@
20
19
* Από πηγαίο κώδικα.
21
20
* Προμηθευτές cloud όπως οι AWS, Google Cloud Platform, Azure, OpenShift και Digital Ocean.
22
21
23
-
Για περισσότερες πληροφορίες διαβάστε το https://gitlab.com/gitlab-org/gitlab-foss/-/blob/master/README.md[αρχείο readme του GitLab Community Edition (CE)^].
22
+
Για περισσότερες πληροφορίες διαβάστε το https://gitlab.com/gitlab-org/gitlab-foss/-/blob/master/README.md[GitLab Community Edition (CE) readme^].
24
23
25
24
==== Διαχείριση
26
25
27
26
Η διεπαφή διαχείρισης του GitLab είναι προσπελάσιμη μέσα από το web.
28
-
Απλά οδηγείτε το πρόγραμμα περιήγησής σας στο hostname ή τη διεύθυνση IP στην οποία είναι εγκατεστημένο το GitLab και συνδεθείτε ως χρήστης admin.
29
-
Το προεπιλεγμένο όνομα χρήστη είναι `[email protected]` και ο προεπιλεγμένος κωδικός πρόσβασης είναι `5iveL!Fe` (που πρέπει να αλλάξετε αμέσως).
27
+
Απλά οδηγείτε το πρόγραμμα περιήγησής σας στο hostname ή τη διεύθυνση IP στην οποία είναι εγκατεστημένο το GitLab και συνδεθείτε ως χρήστης `root`.
28
+
Ο κωδικός βασίζεται στον τύπο εγκατάστασης αλλά από προεπιλογή, ο Omnibus GitLab αυτόαματα δημιουργεί κωδικό και τον αποθηκεύει στο /etc/gitlab/initial_root_password για τουλάχιστον 24 ώρες.
29
+
Ακουλουθήστε το εγχειρίδιο και περισσότερες πληροφορίες.
30
30
Μόλις συνδεθείτε, κάνετε κλικ στο εικονίδιο "`Admin area`" στο επάνω δεξιά μενού.
Μια ομάδα (group) στο GitLab είναι μια συλλογή έργων μαζί με δεδομένα σχετικά με τον τρόπο με τον οποίο οι χρήστες έχουν πρόσβαση σε αυτά τα έργα.
58
-
Κάθε ομάδα έχει ένα ονοματοχώρο έργου (ακριβώς όπως και οι χρήστες), οπότε αν η ομάδα +training+ έχει ένα έργο +materials+, η διεύθυνση URL του θα είναι http://server/training/materials[].
58
+
Κάθε ομάδα έχει ένα ονοματοχώρο έργου (ακριβώς όπως και οι χρήστες), οπότε αν η ομάδα +training+ έχει ένα έργο +materials+, η διεύθυνση URL του θα είναι `http://server/training/materials`.
Κάθε έργο έχει επίσης ένα επίπεδο ορατότητας, το οποίο ελέγχει ποιος έχει πρόσβαση στη σελίδα και το αποθετήριο αυτού του έργου.
75
75
Εάν ένα έργο είναι _Private_ (ιδιωτικό), ο κάτοχος του έργου πρέπει να παρέχει ρητά πρόσβαση σε συγκεκριμένους χρήστες.
76
76
Ένα _Internal_ (εσωτερικό) έργο είναι ορατό σε οποιονδήποτε συνδεδεμένο χρήστη και ένα _Public_ (δημόσιο) έργο είναι ορατό σε οποιονδήποτε.
77
-
Σημειώστε ότι το επίπεδο ορατότητας του έργου ελέγχει τόσο την πρόσβαση "`git fetch`", όσο και την πρόσβαση στη διαδικτυακή διεπαφή χρήστη (web UI) για αυτό το έργο.
77
+
Σημειώστε ότι το επίπεδο ορατότητας του έργου ελέγχει τόσο την πρόσβαση `git fetch`, όσο και την πρόσβαση στη διαδικτυακή διεπαφή χρήστη (web UI) για αυτό το έργο.
Ένας άλλος, πιο ελεγχόμενος τρόπος συνεργασίας είναι με τη χρήση αιτήσεων συγχώνευσης (merge requests).
120
120
Αυτή η δυνατότητα επιτρέπει σε κάθε χρήστη που μπορεί να δει ένα έργο να συνεισφέρει σε αυτό με ελεγχόμενο τρόπο.
121
121
Οι χρήστες με άμεση πρόσβαση μπορούν απλά να δημιουργήσουν έναν κλάδο, να ωθήσουν υποβολές σε αυτόν και να θέσουν ένα αίτημα συγχώνευσης από τον κλάδο τους στον κλάδο `master` ή σε οποιονδήποτε άλλο κλάδο.
122
-
123
122
Οι χρήστες που δεν έχουν δικαίωμα ώθησης σε ένα αποθετήριο μπορούν να το αποσχίσουν (fork) (δηλ. να δημιουργήσουν το δικό τους αντίγραφο), να ωθούν υποβολές σε _αυτό_ το αντίγραφο και να κάνουν αίτημα συγχώνευσης από το αντίγραφό τους στο κύριο έργο.
124
123
Αυτό το μοντέλο επιτρέπει στον κάτοχο να έχει τον πλήρη έλεγχο του τι πηγαίνει στο αποθετήριο και πότε, καθώς επιτρέπει συνεισφορές και από μη αξιόπιστους χρήστες.
Copy file name to clipboardExpand all lines: book/04-git-server/sections/gitweb.asc
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@
4
4
Τώρα που έχετε βασική πρόσβαση ανάγνωσης/εγγραφής και μόνο-για-ανάγνωση στο έργο σας, ίσως θελήσετε να δημιουργήσετε ένα απλό οπτικοκοποιητή (visualizer) ιστού.
5
5
Το Git συνοδεύεται από ένα script CGI που ονομάζεται GitWeb και χρησιμοποιείται μερικές φορές για αυτό τον σκοπό.
6
6
7
-
[[rgitweb]]
7
+
[[r_gitweb]]
8
8
.Η διεπαφή χρήστη του GitWeb.
9
9
image::images/git-instaweb.png[Η διεπαφή χρήστη του GitWeb.]
Εάν θέλετε να τρέχετε συνεχώς τη διεπαφή ιστού σε έναν διακομιστή για την ομάδα σας ή για ένα έργο ανοιχτού κώδικα που φιλοξενείτε, θα πρέπει να ρυθμίσετε το script CGI να προσφέρεται από τον συνηθισμένο web server σας.
33
-
Ορισμένες διανομές Linux έχουν ένα πακέτο `gitweb` που μπορείτε να εγκαταστήσετε με `apt` ή `yum`, επομένως ίσως είναι καλό να δοκιμάσετε αυτό πρώτα.
33
+
Ορισμένες διανομές Linux έχουν ένα πακέτο `gitweb` που μπορείτε να εγκαταστήσετε με `apt` ή `dnf`, επομένως ίσως είναι καλό να δοκιμάσετε αυτό πρώτα.
34
34
Θα σς δείξουμε τη χειροκίνητη εγκατάσταση του GitWeb πολύ συνοπτικά.
35
35
Πρώτα πρέπει να πάρετε τον πηγαίο κώδικα του Git, με τον οποίο έρχεται το GitWeb, και να δημιουργήσετε το προσαρμοσμένο script CGI:
0 commit comments