README.md 4 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11
### Περιγραφή ###
Σκοπός του οδηγού είναι να καθορίσει τις αρχές και την μεθοδολογία χρήσης του git στο gitlabs, προκειμένου να μπορεί μια ομάδα 3 ή και παραπάνω προγραμματιστών να συνεργαστούν μεταξύ τους, με σκοπό την ανάπτυξη μίας εφαρμογής

### Βασικοί στόχοι ####
1. Να καθοριστούν κανόνες-αρχές σχετικά απλοί ώστε να διευκολύνουν την λειτουργία της ομάδας
2. Να διασφαλίζεται η αποφυγή λαθών στον συντονισμό του repository λόγω απειρίας των προγραμματιστών στο git

Βάση των παραπάνω αρχών, προτείνεται το forking workflow, το οποίο διασφαλίζει το 2 σε βάρος του 1, άλλα θεωρούμε ότι έχει την κατάλληλη ισορροπία. Σχετικά με τα workflows διαβάστε στις παραπομπές.
Ακολουθώντας το forking workflow, θα πρέπει να τηρήσουμε τις παρακάτω αρχές:

1. Κανείς δεν κάνει αλλαγές στο κεντρικό repo (canonical repository)
12
2. Οι αλλαγές στο κεντρικό repo γίνονται μόνο με merge requests από forked repositories
13 14 15 16
3. Η εργασία πάνω σε αλλαγές πρέπει γίνεται σε τοπικά cloned repositories
4. Κάθε νέα λειτουργία ή αλλαγή αναπτύσσεται σε ξεχωριστό branch
5. Φροντίζουμε να διατηρούμε το ιστορικό αλλαγών (commit history) σε μικρό μέγεθος για να μην επιβαρύνουμε το commit history στο canonical repository

17 18 19 20 21 22 23 24 25 26 27
Για να ξεκινήσει κάποιος, μπορεί να ακολουθήσει τα παρακάτω βήματα. Ας υποθέσουμε πως ο χρήστης αυτός έχει παντού το όνομα χρήστη developer. Ας υποθέσουμε ότι το canonical repository είναι το itminedu/application
1. Κάνει fork το itminedu/application repository στο gitlabs, οπότε έχει ένα repository developer/application
2. Κάνει clone το canonical repository τοπικά (άρα origin itminedu/application)
3. Προσθέτει remote για το forked repository (π.χ. my-origin developer/application)
4. Για κάθε νέα λειτουργία εργάζεται σε νέο branch , π.χ. new-feature
5. Για να μοιραστεί την εργασία του ανεβάζει δοκιμαστικά το new-feature branch στο my-origin από όπου μπορούν να πάρουν τις αλλαγές και να συνεισφέρουν οι συνεργάτες του
6. Όταν ολοκληρωθούν οι αλλαγές κάνει pull request μέσω του forked repository στο master ή develop branch στο canonical repository

Εάν χρειαστεί να συμμαζευτεί το ιστορικό αλλαγών, μπορεί να γίνει και στο τοπικό repository αλλά μόνο σε νέο branch και ποτέ αλλάζοντας το ιστορικό commits που έχουν γίνει ήδη push.

**Προσοχή!** Η διατήρηση πολλαπλών repositories για ένα έργο θα απαιτήσει να κρατήσει ο κάθε χρήστης συγχρονισμένα τα σχετικά repositories. Οδηγίες στα σχετικά links που παρατίθενται στο τέλος της σελίδας.
28 29 30 31 32 33 34 35





Παραπομπές:

1. https://www.atlassian.com/git/tutorials/comparing-workflows
36 37
2. Understanding the GitHub Flow https://guides.github.com/introduction/flow/
3. Syncing a fork https://help.github.com/articles/syncing-a-fork/