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/05-distributed-git/sections/contributing.asc
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -491,7 +491,7 @@ image::images/managed-team-3.png[Ιστορικό της Τζέσικα μετά
491
491
492
492
Πολλές ομάδες τείνουν προς τη χρήση του Git εξαιτίας ακριβώς αυτής της δυνατότητας, να έχουν πολλές ομάδες που εργάζονται παράλληλα και να συγχωνεύουν τις διαφορετικές γραμμές εργασίας αργότερα.
493
493
Η ικανότητα μικρότερων υποομάδων μιας ομάδας να συνεργάζονται μέσω απομακρυσμένων κλάδων χωρίς να χρειάζεται απαραίτητα να εμπλέξουν ή να φρενάρουν ολόκληρη την ομάδα είναι ένα τεράστιο όφελος που παρέχει το Git.
494
-
Η ακολουθία της ροής εργασίας που είδατε εδώ είναι κάτι σαν αυτό:
494
+
Η ακολουθία της ροής εργασίας που είδαμε εδώ είναι κάτι σαν αυτό:
495
495
496
496
.Βασική ακολουθία αυτής της ροής εργασίας διαχειριζόμενη ομάδα
497
497
image::images/managed-team-flow.png[Βασική ακολουθία αυτής της ροής εργασίας διαχειριζόμενη ομάδα]
@@ -575,7 +575,7 @@ Jessica Smith (2):
575
575
576
576
Σε ένα έργο στο οποίο δεν είμαστε ο συντηρητής, είναι γενικά ευκολότερο να έχουμε έναν κλάδο όπως ο `master` να παρακολουθεί πάντα τον `origin/master` και να δουλεύουμε σε θεματικούς κλάδους τους οποίους μπορούμε εύκολα να διαγράψουμε αν απορριφθούν.
577
577
Η διατήρηση ξεχωριστών θεματικών κλάδων για διαφορετικά θέματα διευκολύνει επίσης την αλλαγή βάσης της εργασίας μας, αν η άκρη του κύριου αποθετηρίου έχει μετακινηθεί εν τω μεταξύ και οι υποβολές μας δεν εφαρμόζονται πλέον με καθαρό τρόπο.
578
-
Για παράδειγμα, εάν θέλουμε να δημιουργήσουμε ένα δεύτερο θέμα εργασίας στο έργο, καλό είναι να μην συνεχίζετε να εργαζόμαστε στον κλάδο του θέματος το οποίο μόλις ωθήσατε, αλλά να ξεκινήσουμε από τον κλάδο `master` του αποθετηρίου:
578
+
Για παράδειγμα, εάν θέλουμε να δημιουργήσουμε ένα δεύτερο θέμα εργασίας στο έργο, καλό είναι να μην συνεχίζουμε να εργαζόμαστε στον κλάδο του θέματος το οποίο μόλις ωθήσαμε, αλλά να ξεκινήσουμε από τον κλάδο `master` του αποθετηρίου:
Copy file name to clipboardExpand all lines: book/05-distributed-git/sections/distributed-workflows.asc
+17-17Lines changed: 17 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,11 +1,11 @@
1
1
=== Κατανεμημένες ροές εργασίας
2
2
3
3
(((ροές εργασίας)))
4
-
Σε αντίθεση με τα Συγκεντρωτικά Συστήματα Ελέγχου Έκδοσεων (CVCS), η κατανεμημένη φύση του Git σάς επιτρέπει να είστε πολύ πιο ευέλικτοι όσον αφορά στη συνεργασία των προγραμματιστών στο πλαίσιο ενός έργου.
4
+
Σε αντίθεση με τα Συγκεντρωτικά Συστήματα Ελέγχου Έκδοσεων (CVCS), η κατανεμημένη φύση του Git μας επιτρέπει να είμαστε πολύ πιο ευέλικτοι όσον αφορά στη συνεργασία των προγραμματιστών στο πλαίσιο ενός έργου.
5
5
Στα συγκεντρωτικά συστήματα κάθε προγραμματιστής είναι ένας κόμβος που συνεργάζεται λίγο πολύ εξίσου με έναν κεντρικό κόμβο (hub).
6
6
Ωστόσο, στο Git, κάθε προγραμματιστής είναι δυνητικά τόσο κόμβος όσο και κεντρικό σημείο -- δηλαδή, κάθε προγραμματιστής μπορεί να συνεισφέρει κώδικα σε άλλα αποθετήρια και να διαχειρίζεται ένα δημόσιο αποθετήριο στο οποίο άλλοι μπορούν να βασίσουν τη δική τους εργασία και στο οποίο μπορούν να συνεισφέρουν.
7
-
Αυτό παρέχει ένα ευρύ φάσμα δυνατοτήτων όσον αφορά στις ροές εργασίας για το έργο σας ή/και την ομάδα σας· θα καλύψουμε μερικά συνηθισμένα μοντέλα που εκμεταλλεύονται αυτή την ευελιξία.
8
-
Θα αναλύσουμε τα δυνατά σημεία αλλά και τις ενδεχόμενες αδυναμίες κάθε μοντέλου· μπορείτε να επιλέξετε μόνον ένα από αυτά ή να δανειστείτε λειτουργικότητες από περισσότερα και να τις ταιριάξετε.
7
+
Αυτό παρέχει ένα ευρύ φάσμα δυνατοτήτων όσον αφορά στις ροές εργασίας για το έργο μας ή/και την ομάδα μας· θα καλύψουμε μερικά συνηθισμένα μοντέλα που εκμεταλλεύονται αυτή την ευελιξία.
8
+
Θα αναλύσουμε τα δυνατά σημεία αλλά και τις ενδεχόμενες αδυναμίες κάθε μοντέλου· μπορούμε να επιλέξουμε μόνον ένα από αυτά ή να δανειστούμε λειτουργικότητες από περισσότερα και να τις ταιριάξουμε.
9
9
10
10
==== Συγκεντρωτική ροή εργασίας
11
11
@@ -14,15 +14,15 @@
14
14
Μόνο ένας κεντρικός κόμβος ή _αποθετήριο_ μπορεί να δεχθεί κώδικα και όλοι συγχρονίζουν το έργασία τους με αυτόν.
15
15
Οι προγραμματιστές είναι περιφερειακοί κόμβοι -- καταναλωτές αυτού του κεντρικού κόμβου -- και συγχρονίζονται με αυτή την κεντρική τοποθεσία.
Αυτό σημαίνει ότι εάν δύο προγραμματιστές κλωνοποιήσουν από τον κεντρικό κόμβο και κάνουν αλλαγές και οι δύο, ο πρώτος προγραμματιστής που θα ωθήσει τις αλλαγές τους μπορεί να το κάνει χωρίς προβλήματα.
21
21
Ο δεύτερος προγραμματιστής πρέπει να συγχωνεύσει την εργασία του πρώτου πριν ωθήσει τις δικές του αλλαγές, ώστε να μην αντικαταστήσει τις αλλαγές του πρώτου προγραμματιστή.
22
-
Αυτό ισχύει ισχύει και στο Git όπως και στο Subversion (((Subversion))) (ή οποιοδήποτε CVCS) και αυτό το μοντέλο λειτουργεί απολύτως καλά και στο Git.
22
+
Αυτό ισχύει και στο Git όπως και στο Subversion (((Subversion))) (ή οποιοδήποτε CVCS) και αυτό το μοντέλο λειτουργεί απολύτως καλά και στο Git.
23
23
24
-
Εάν είστε ήδη εξοικειωμένοι με μια συγκεντρωτική κεντρική ροή εργασίας στην εταιρεία ή την ομάδα σας, μπορείτε εύκολα να συνεχίσετε να χρησιμοποιείτε αυτή τη ροή εργασίας με το Git.
25
-
Απλά δημιουργείτε ένα μοναδικό αποθετήριο και δίνετε σε όλα τα μέλη της ομάδας σας δικαίωμα ώθησης (push access)· το Git δεν επιτρέπει στους χρήστες να επανεγγράψουν ο ένας τη δουλειά του άλλου.
24
+
Εάν είμαστε ήδη εξοικειωμένοι με μια συγκεντρωτική κεντρική ροή εργασίας στην εταιρεία ή την ομάδα μας, μπορούμε εύκολα να συνεχίσουμε να χρησιμοποούμε αυτή τη ροή εργασίας με το Git.
25
+
Απλά δημιουργούμε ένα μοναδικό αποθετήριο και δίνουμε σε όλα τα μέλη της ομάδας μας δικαίωμα ώθησης (push access)· το Git δεν επιτρέπει στους χρήστες να επανεγγράψουν ο ένας τη δουλειά του άλλου.
26
26
27
27
Ας υποθέσουμε ότι ο Τζον και η Τζέσικα αρχίζουν να εργάζονται την ίδια στιγμή.
28
28
Ο Τζον ολοκληρώνει την αλλαγή του και την ωθεί στον διακομιστή.
==== Ροή εργασίας με διαχειριστή ενσωμάτωσης (integration manager)
38
38
39
39
(((ροές εργασίας, διαχειριστής ενσωμάτωσης)))
40
-
Επειδή το Git σάς επιτρέπει να έχετε πολλαπλά απομακρυσμένα αποθετήρια, είναι δυνατό να έχετε μια ροή εργασίας στην οποία κάθε προγραμματιστής έχει δικαίωμα εγγραφής στο δικό του δημόσιο αποθετήριο και δικαίωμα ανάγνωσης σε όλα τα άλλα αποθετήρια.
40
+
Επειδή το Git μας επιτρέπει να έχουμε πολλαπλά απομακρυσμένα αποθετήρια, είναι δυνατό να έχουμε μια ροή εργασίας στην οποία κάθε προγραμματιστής έχει δικαίωμα εγγραφής στο δικό του δημόσιο αποθετήριο και δικαίωμα ανάγνωσης σε όλα τα άλλα αποθετήρια.
41
41
Αυτό το σενάριο περιλαμβάνει συχνά ένα κανονικό (canonical) αποθετήριο που αντιπροσωπεύει το "`επίσημο`" έργο.
42
-
Για να συνεισφέρετε σε αυτό το έργο, δημιουργείτε τον δικό σας δημόσιο κλώνο του έργου και ωθείτε τις αλλαγές σας σε αυτόν.
43
-
Στη συνέχεια, μπορείτε να στείλετε ένα αίτημα στον διαχειριστή του κύριου έργου να τραβήξει τις αλλαγές σας.
44
-
Τότε ο διαχειριστής μπορεί να προσθέσει το αποθετήριό σας ως απομακρυσμένο, να δοκιμάσει τις αλλαγές σας τοπικά, να τις συγχωνεύσει στον κλάδο του και να τις ωθήσει στο αποθετήριό του.
42
+
Για να συνεισφέρουμε σε αυτό το έργο, δημιουργούμε τον δικό μας δημόσιο κλώνο του έργου και ωθούμε τις αλλαγές μας σε αυτόν.
43
+
Στη συνέχεια, μπορούμε να στείλουμε ένα αίτημα στον διαχειριστή του κύριου έργου να τραβήξει τις αλλαγές μας.
44
+
Τότε ο διαχειριστής μπορεί να προσθέσει το αποθετήριό μας ως απομακρυσμένο, να δοκιμάσει τις αλλαγές μας τοπικά, να τις συγχωνεύσει στον κλάδο του και να τις ωθήσει στο αποθετήριό του.
45
45
Η διαδικασία λειτουργεί ως εξής (βλ. <<rwfdiag_b>>):
46
46
47
47
1. Ο διαχειριστής του έργου ωθεί στο δημόσιο αποθετήριό του.
48
48
2. Ένας συνεργάτης κλωνοποιεί αυτό το αποθετήριο και κάνει αλλαγές.
49
49
3. Ο συνεργάτης ωθεί στο δικό του δημόσιο αντίγραφο.
50
-
4. Ο συνεργάτης αποστέλλει στον διαχειριστή ένα e-mail ζητώντας του να κάνει αλλαγές.
50
+
4. Ο συνεργάτης αποστέλλει στον διαχειριστή ένα e-mail ζητώντας του να τραβήξει τις αλλαγές.
51
51
5. Ο διαχειριστής προσθέτει το αποθετήριο του συνεργάτη ως απομακρυσμένο και συγχωνεύει τοπικά.
52
52
6. Ο διαχειριστής ωθεί τις συγχωνευμένες αλλαγές στο κύριο αποθετήριο.
image::images/integration-manager.png[Ροή εργασίας με διαχειριστη ενσωμάτωσης]
57
57
58
58
(((απόσχιση)))
59
-
Αυτή είναι μια πολύ συνηθισμένη ροή εργασίας με εργαλεία όπως το GitHub ή το GitLab, που βασίζονται σε κεντρικούς κόμβους και στην οποία είναι εύκολο να κλωνοποιήσετε ένα έργο και να ωθήσετε τις αλλαγές σας στον δικό σας κλώνο, όπου μπορούν να τις δουν όλοι.
60
-
Ένα από τα κύρια πλεονεκτήματα αυτής της προσέγγισης είναι ότι μπορείτε να συνεχίσετε να εργάζεστε και ο διαχειριστής του κύριου αποθετηρίου μπορεί να τραβήξει τις αλλαγές σας όποτε θέλει.
59
+
Αυτή είναι μια πολύ συνηθισμένη ροή εργασίας με εργαλεία όπως το GitHub ή το GitLab, που βασίζονται σε κεντρικούς κόμβους και στην οποία είναι εύκολο να κλωνοποιήσουμε ένα έργο και να ωθήσουμε τις αλλαγές μας στον δικό μας κλώνο, όπου μπορούν να τις δουν όλοι.
60
+
Ένα από τα κύρια πλεονεκτήματα αυτής της προσέγγισης είναι ότι μπορούμε να συνεχίσουμε να εργαζόμαστε και ο διαχειριστής του κύριου αποθετηρίου μπορεί να τραβήξει τις αλλαγές μας όποτε θέλει.
61
61
Οι συνεργάτες δεν χρειάζεται να περιμένουν το έργο να ενσωματώσει τις αλλαγές τους -- ο καθένας μπορεί να εργαστεί με τον δικό του ρυθμό.
62
62
63
63
==== Ροή εργασίας δικτάτορα και υπαρχηγών
@@ -72,7 +72,7 @@ image::images/integration-manager.png[Ροή εργασίας με διαχει
72
72
73
73
1. Οι απλοί προγραμματιστές ασχολούνται με τον θεματικό κλάδο τους και επανατοποθετούν (rebase) την εργασία τους στον κλάδο `master`.
74
74
Ο κλάδος `master` ανήκει στο αποθετήριο αναφοράς στο οποίο ωθεί ο δικτάτορας.
75
-
2. Οι υπαρχηγοί συγχωνεύουν τους κλάδους των προγραμματιστών ο καθένας στον δικό του στον κλάδο `master`.
75
+
2. Οι υπαρχηγοί συγχωνεύουν τους κλάδους των προγραμματιστών ο καθένας στον δικό τους κλάδο `master`.
76
76
3. Ο δικτάτορας συγχωνεύει τους κλάδους `master` των υπαρχηγών στον κλάδο `master` του δικτάτορα.
77
77
4. Ο δικτάτορας ωθεί τον δικό του κλάδο `master` στο αποθετήριο αναφοράς, έτσι ώστε οι άλλοι προγραμματιστές να μπορέσουν να επανατοποθετηθούν σε αυτόν.
Αυτές είναι μερικές συνήθεις ροές εργασίας που καθίστανται δυνατές με ένα κατανεμημένο σύστημα όπως το Git, αλλά βλέπετε ότι είναι δυνατές πολλές παραλλαγές οι οποίες ενδεχομένως ταιριάζουν περισσότερο στη δική σας ροή εργασίας.
100
+
Αυτές είναι μερικές συνήθεις ροές εργασίας που καθίστανται δυνατές με ένα κατανεμημένο σύστημα όπως το Git, αλλά βλέπετε ότι είναι δυνατές πολλές παραλλαγές οι οποίες ενδεχομένως ταιριάζουν περισσότερο στη δική μας ροή εργασίας.
101
101
Τώρα που μπορείτε (όπως ελπίζουμε) να προσδιορίσετε ποιος συνδυασμός ροών εργασίας σας βολεύει, θα καλύψουμε μερικά πιο συγκεκριμένα παραδείγματα για το πώς να επιτύχετε τους κύριους ρόλους που συνθέτουν τις διαφορετικές ροές.
102
-
Στην επόμενη ενότητα, θα μάθετε μερικά κοινά μοτίβα συνεισφοράς σε ένα έργο.
102
+
Στην επόμενη ενότητα, θα μάθουμε μερικά κοινά μοτίβα συνεισφοράς σε ένα έργο.
0 commit comments