Git - Version Control System & GoogleCode ΣΥΝΕΡΓΑΣΙΑ 2 ΧΡΗΣΤΩΝ Gmail : Ηλεκτρονικό Ταχυδροµείο από την Google Kατά αρχάς θα πρέπει να έχετε ένα email ή Gmail account. Aν δεν έχετε θα δηµιουργήσετε: https://accounts.google.com/signup?service=mail&continue=http%3a%2f%2fmail.googl e.com%2fmail%2f%3fhl%3del<mpl=default&hl=el Ακολουθήστε τις οδηγίες και επιλέξτε ένα διαθέσιµο όνοµα που σας ταιριάζει π.χ. vassiladak@gmail.com Αν ήδη έχετε account απλά µπείτε (Sign.in) στο code.google.com ΧΡΗΣΤΗΣ Α code.google.com ηµιουργία νέου project Θα δηµιουργήσουµε ένα NewProject (A ΕΙΟ) στο code.google.com Πρέπει να δοθεί όνοµα που δεν υπάρχει ήδη Έστω adopseexamples [1]
ηµιουργία του αρχείου.netrc ή καλύτερα _netrc & ενεργοποίηση του κωδικού µας Αρχείο _netrc Για να µπορέσουµε να κατεβάσουµε κώδικα στο code.google θα φτιάξουµε το παρακάτω αρχείο (µε notepad) ΠΡΟΣΟΧΗ :όλο machine Την γραµµή αυτή την παίρνουµε από τα Settings µας ή πατώντας εδώ Το αρχείο αυτό _netrc, θα το βάλουµε στο home directory του χρήστη π.χ. στον Η/Υ µου είναι C:\Documents and Settings\Media Pc (Στα Windows 7 (ΤΕΙ) θα το βάλουµε στο C:\users\user). Eνεργοποίηση του κωδικού µας Η γραµµή που βάζουµε µέσα στο _netrc Στα Settings/Security τσεκάρουµε και το Accept Google Account password [2]
ηµιουργία τοπικού αντιγράφου (Clone Repository στο δίσκο µας) Εστω ότι δηµιουργήσατε στο code.google.com το project µε όνοµα adopseexamples URL από όπου θα γίνει η αντιγραφή Aνοίγετε το Git Extensions και επιλέγετε Clone repository /για να αντιγραφτεί, από το URL του cοde.gοοgle, τοπικά Στη επόµενη οθόνη Clone δίνεται στοιχεία source/destination Repository to clone : URL Destination : Toπικός Φάκελος Αν όλα πάνε καλά έχετε µήνυµα ότι αντιγράψετε ένα άδειο repository και κλικάρετε OK Απαντούµε µε Υes στο µήνυµα ότι επιθυµούµε τώρα να ανοίξουµε το repository. Κατόπιν θα φτιάξουµε το αρχείο.gitignore. Εµφανίζεται το Κλικ "Εdit.gitignore" (στο config αυτό, ορίζονται τα αρχεία που δεν θα µπαίνουν στο Repository) [3]
Κλικ "Add default ignores" και Save για να κάνουμε το 1 ο Commit στο Git Εxtensions Στην οθόνη Commit to Master που θα εµφανιστεί, καταγράφεται το.gitignore που καλό είναι να µπαίνει και αυτό µέσα στο project (όλοι οι χρήστες να έχουν το ίδιο). ΠΡΕΠΕΙ ΝΑ ΠΑΤΗΣΟΥΜΕ ΤΟ STAGE ALL Ώστε ότι αρχεία υπάρχουν στο πάνω αριστερό παράθυρο να µπουν στο κάτω αριστερό παράθυρο Στην οθόνη Commit to Master που θα εµφανιστεί, καταγράφεται το.gitignore τώρα κάτω αριστερά Πριν κάνουµε Commit θα καταχωρήσουμε κάποιο σχόλιο π.χ. GitIgnore και μετά θα εκτελέσουμε το Commit [4]
Στο µήνυµα δεν υπάρχει κάποιο (νέο στάδιο).. all unstaged files? «.. There are no staged for this commit. Stage and commit all unstaged files απαντάµε YES και µε κλικ «ΟΚ» στη οθόνη Process, εµφανίζεται η βασική οθόνη του Git Extensions adopseexample (master) µε το µενού της Ενηµέρωση στο code.google για το αρχείο.gitignore Θα ενηµερώσουµε code.google ότι προσθέσαµε το αρχείο.gitignore κάνοντας PUSH Eπιλέγουµε Yes και αν όλα πήγαν καλά έχουµε µήνυµα ότι τα καταφέραµε Με λίγα λόγια καταφέραµε (µε το PUSH) να µεταφέρουµε το αρχείο.gitignore Mέχρι τώρα το repository µας είναι άδειο θα του βάλουµε κάτι λοιπόν π.χ. [5]
ηµιουργία στο Visual Studio ενός project µέσα στο local repository µας Θα φτιάξουµε ένα VS project µε όνοµα ΤestGitRemote και θα το σώσουµε µέσα στο Local repository µας (ή αν έχουµε δηµιοργήσει ένα project απλά θα το µεταφέρουµε στον Toπικό Φάκελο /εκεί που βρίσκεται και το.gitignore που κάναµε πριν) Σε αυτό το project ΤestGitRemote που θα είναι µια Windows Application, έστω ότι βάζουµε µε µια φόρµα που έχει µέσα ένα button-που δεν κάνει κάτι. Ενηµέρωση στο code.google για το αρχείο ΤestGitRemote Για να πάρει ενηµερώσουµε για τις αλλαγές µας θα κάνουµε Commit, Stage All Θα γράψουµε και ένα σχόλιο π.χ Form1Button και θα εκτελέσουµε Commit & Push Σχόλιο Form1Button Όλα πήγαν ΟΚ, και µεταφέρθηκαν και οι αλλαγές µας. [6]
Sharing project Σε αυτό το σηµείο π.χ. ο χρήστης Α θα παραδώσει το project adopseexamples στο χρήστη Β και τον οποίο θέλει να τον κάνει ας πούµε συνιδιοκτήτη του. Αυτό γίνεται µέσω του Administer/Sharing Project αccess, προσθέτοντας το email του Β χρήστη, στην λίστα µε τους owners και Save ΧΡΗΣΤΗΣ Β Ότι περιγράφτηκε στις πρώτες σελίδες για τα settings του A χρήστη (vassiladak@gmail.com) ισχύουν και για τον B χρήστη (vassik@otenet.gr). ηλαδή θα πρέπει να συνδεθεί, να δηµιουργήσει το αρχείο _netrc και να ενεργοποιήσει τον κωδικό του (δεν θα ξαναφτιάξει το project-τουναντίον θα πρέπει να το βλέπει) Θα πρέπει και αυτός να δηµιουργήσει ένα Local Repository και να κάνει Clone repository, από το URL που βρίσκεται το project adopseexamples, τοπικά στο δικό του Η/Υ. Όταν λοιπόν ανοίξει το Repository του, θα παραλάβει το project στην κατάσταση που το παρέδωσε ο Α. Ο Β χρήστης ανοίγει τον Toπικό Φάκελό του και βρίσκει µέσα το ΤestGitRemote του Α χρήστη και Προσθέτει ένα combobox. Σώζει & Ενηµερώνει για τις αλλαγές του µε COMMIT. Ενηµέρωση στο code.google -PUSH (Οι αλλαγές του επισηµαίνονται µε + και πράσινο ) ΒΑΖΕΙ ΣΧΟΛΙΟ & COMMIT & PUSH [7]
vassik@otenet.g ΧΡΗΣΤΗΣ A Ο χρήστης A (vassiladak@gmail.com) συνεχίζει εντωµεταξύ την εργασία του βάζοντας και ένα 2 κουµπί στην φόρµα σώζει,κάνει COMMIT, γράφει σχόλιο Form2Button & Commit & Push: Σ αυτό το σηµείο ενηµερωνόµαστε ότι υπάρχουν αλλαγές και θα πρέπει να πάρουµε τις αλλαγές [8]
Πριν κάνουµε το commit & push θα κάνουµε PULL για να πάρουµε τις αλλαγές του Β Ενηµέρωση από το code.google µε PULL Ενηµερώνεται και ο Α για τις αλλαγές που έγιναν και κλικάρoντας PULL επιχειρείται το Merging, που αρχικά αποτυγχάνει αλλά µπορούµε να επιλέξουµε να διορθώσουµε τις συγκρούσεις (conflits) A B C Επιλύουµε τις συγκρούσεις µε το kdiff3 επιλέγοντας τις αρµόζοντες γραµµές από τα Β και C και επιτυγχάνεται το merge και µπορούµε να κάνουµε COMMIT & PUSH [9]