Page 1 of 1

FOSS AUEB: Git

Posted: Fri Mar 06, 2015 10:31 am
by Funk
Κατόπιν λαϊκής απαίτησης και υποστήριξης, το FOSS AUEB ανακοινώνει:
Πρώτο event για το 2015.

Τι θα δούμε:
  • Τι είναι το git
  • Πως χρησιμοποιείται το git & τι λειτουργίες προσφέρει
  • Πως βοηθάει στις ομαδικές εργασίες της σχολής
Την παρουσίαση θα κάνει ο Νίκος.
Στο τέλος θα υπάρχει χρόνος για συζήτηση και Q&A.

Ημερομηνία: Τρίτη 10/3/2015
Ώρα: 19:00 - 21:00
Αίθουσα: Υ



Be there :cheers:

Facebook Event - (s)
post @ foss.aueb.gr

ΥΓ: Οι συναντήσεις θα είναι εβδομαδιαίες, σε αυτή τη μέρα/ώρα/αίθουσα. :)

Re: FOSS AUEB: Git

Posted: Fri Mar 06, 2015 2:57 pm
by nachos
Επιτέλους μια ώρα της προκοπής, count me in :-D

Re: FOSS AUEB: Git

Posted: Fri Mar 06, 2015 7:21 pm
by moody
Git gud

Re: FOSS AUEB: Git

Posted: Mon Mar 09, 2015 12:50 am
by moody
bump :smt025

Re: FOSS AUEB: Git

Posted: Mon Mar 09, 2015 12:47 pm
by frouk
"70 άτομα θα πάνε" gratz.

Δείξτε και πόσο εύκολο είναι να συνδεθεί κανείς στο irc για να βλέπει τα ωραία links που στέλνουν τα παιδιά και να ρωτάει-συζητάει ότι θέλει.

Re: FOSS AUEB: Git

Posted: Tue Mar 10, 2015 10:57 pm
by Funk
Image
Ευχαριστούμε για την προσοχή σας :-D

Περιμένουμε feedback, όπως είπε και ο nachos, εδώ ή στο irc. Θυμίζω: https://foss.aueb.gr/irc/ - feel free να σπαμμάρετε ερωτήσεις, όσο "χαζές" και αν φοβάστε ότι είναι (όλοι ήταν κάποτε noobs).

Επίσης, αφού υπήρχε τόση συμμετοχή θα ανοίξει σύντομα νέο thread με σκοπό να προτείνετε εκεί θέματα τα οποία θα θέλατε να συζητήσουμε ή/και παρουσιάσουμε.
Ακόμη, εάν κάποιος θέλει να συμμετάσχει από την άλλη μεριά - παρουσιάζοντας κάτι με το οποίο έχει ασχοληθεί -, μπορεί να μπει στο irc να μιλήσουμε.

Τέλος, η επόμενη συνάντησή μας θα είναι -λογικά- την επόμενη Τρίτη, και μέχρι τότε θα έχει φτιαχτεί άλλο event στο αγαπημένο σας social network.
:smt023

Re: FOSS AUEB: Git

Posted: Tue Mar 10, 2015 11:21 pm
by Jami
Σημειωσεις σχετικα με την σημερινη παρουσιαση.

Πρωτα βηματα για να χρησιμοποιησουμε το git:
Spoiler: εμφάνιση/απόκρυψη
Aρχικα εχουμε κατεβασει το προγραμμα git, το εχουμε εγκαταστησει και εχουμε φτιαξει λογαριασμο σε ενα site που κανει host git repositories, οπως github, bitbucket κλπ. Στη παρουσιαση χρησιμοποιουμε το github. Οσον αφορα τα projects της σχολης, χρειαζομαστε γενικα private repositories για να μην βλεπουν τριτοι τον κωδικα μας. Το github προσφερει δωρεαν αυτη τη δυνατοτητα με χρηση φοιτητικου λογαριασμου (για περισσοτερα δειτε [url=https://education.github.com/]εδω[/url]), ενω το bitbucket δινει free private repositories κατευθειαν με το κανονικο λογασιασμο, με maximum συνεργατες 5 ατομα. Κατι που δεν ειπωθηκε σημερα, αλλα χρειαζεται αναγκαστικα να γινει ειναι μολις κατεβασουμε και εγκαταστησουμε το git, να παμε στην κονσολα και να δωσουμε τα στοιχεια μας, ωστε να ξερει το git ποιος χρηστης εχει κανει τι. Αν δεν το κανετε αυτο, και πατε να κανετε commit θα σας παραπονεθει το git. Στη θεση του John Doe και johndoe@example.com βαζετε τα δικα σας στοιχεια. [code]$ git config --global user.name "John Doe" $ git config --global user.email johndoe@example.com[/code]
Use Case:
Εστω οτι υπαρχει ενας φακελος με το project που θελουμε να το gitαρουμε και περιεχει μεσα ενα αρχειο, το hello.java. Αφου ανοιξουμε γραμμη εντολων και πλοηγηθουμε με cd εντος του φακελου αυτου εκτελουμε τις παρακατω εντολες.

Git Workflow

Αρχικοποιηση git repository, αποθηκευση των αρχειων του project μας, συνδεση με github και upload του project. Αναλυτικα :
Spoiler: εμφάνιση/απόκρυψη
[list] [*] Δημιουργια repository για να αρχισει το tracking σε ενα φακελο (πχ ενος project) [code]git init[/code] [*] Με την παρακατω εντολη μπορουμε να δουμε τι συμβαινει στο repository μας, ποια αρχεια ειναι στη φαση tracked και χρειαζεται να τα κανουμε commit. [code]git status[/code] [*] Προσθηκη του αρχειου hello.java στη φαση που γινεται track. [code]git add hello.java[/code] [*] Αποθηκευση των αλλαγων στο repository δινοντας και ονομα για να ξερουμε τι αλλαγη καναμε. Επειδη ειναι το πρωτο μας commit, απλα βαζουμε ενα τυπικο μηνυμα. [code]git commit -m "Initial commit"[/code] [*] Με την παρακατω εντολη μπορουμε να δουμε το commit μας και γενικα ολα τα commits που εχουν γινει στο repository, πχ απο αλλους συνεργατες. Προς το παρον βλεπουμε μονο το δικο μας commit. [code]git log[/code] [*] Συνδεση του τοπικου μας φακελου με το github. Στη θεση του link θα βαλετε το link απο το repository που εχετε φτιαξει στο github (οδηγιες για δημιουργια repo στο github [url=https://help.github.com/articles/create-a-repo/]εδω[/url]). Εδω εχουμε επιλεξει συνδεση με HTTPS, δειτε παρακατω για τους εναλλακτικους τροπους. [code]git remote add origin https://github.com/user/repo.git[/code] [img]https://help.github.com/assets/images/help/repository/remotes-url.png[/img] Υπαρχουν διαφορες μεθοδοι, γενικα χρησιμοποιουνται οι HTTPS και SSH. Η διαφορα στον ενα με τον αλλο ειναι, οτι στον πρωτο θα ζητηθει στον χρηστη να δωσει username & password του github profile του, ενω στον αλλο δεν θα ζητηθει (γιατι θα εχει ο χρηστης σεταρει απο πριν την λειτουργια του ssh, οδηγιες μπορουν να βρεθουν [url=https://help.github.com/articles/generating-ssh-keys/]εδω[/url]) [*] Ανεβασμα στο github του τοπικου μας repository. Θα ζητησει το username και κωδικο του github profile σας. [code]git push origin master[/code][/list] Τωρα αν κανουμε refresh στο profile μας στο github θα δουμε και το αρχειο που θα εχει ανεβει!
Προσθηκη συνεργατη στο project, κατεβασμα του project στον υπολογιστη του συνεργατη, αποθηκευση μερικων αλλαγων και αποστολη στο github. Αναλυτικα:
Spoiler: εμφάνιση/απόκρυψη
[list] [*] Αρχικα πρεπει ο δημιουργος του project να δωσει προσβαση στο repository που εφτιαξε στο github λογαριασμο του συνεργατη του. Αυτο θα γινει μεσω του github site και οδηγιες μπορουν να βρεθουν [url=https://help.github.com/articles/adding-collaborators-to-a-personal-repository/]εδω[/url]. [*] Αφου δοθει προσβαση στον συνεργατη, θα του ερθει και αντιστοιχο email που θα περιεχει link προς αυτο το repository. Προκειμενου να κατεβασει στον υπολογιστη του το repository, θα πρεπει να βρει το url που θα κανει clone. [img]https://help.github.com/assets/images/help/repository/remotes-url.png[/img] Αφου εχει βρει ο συνεργατης το link του repository, θα παει στην κονσολα του και με [b]cd[/b] θα πλοηγηθει στον φακελο που θελει να μπει το project που θα κατεβασει και θα γραψει το ακολουθο, οπου στη θεση του link θα βαλει το δικο του. [code]git clone https://github.com/user/repo.git[/code] [*] Τωρα πλεον εχει και ο συνεργατης τον κωδικα του project τοπικα στον υπολογιστη του. Μπορει να κανει αλλαγες με τα βηματα που περιγραφηκαν προηγουμενως [git add {file}, git commit -m "{message}"] [*] Για να ανεβασει τις αλλαγες του στο github και να μπορει να τις κατεβασει ο αρχικος χρηστης (ο χρηστης που εφτιαξε το repository), ο συνεργατης πρεπει να γραψει [code]git push[/code] [*] Προκειμενου και ο αρχικος χρηστης (ο χρηστης που εφτιαξε το repository) να παρει τις αλλαγες που εκανε ο συνεργατης θα εκτελεσει την εντολη [code]git pull[/code] Η παραπανω εντολη θα κατεβασει τις οποιες αλλαγες και αν δεν εχει πειραχτει καποια ιδια γραμμη, ξερει να κανει μονο του το merge, δηλαδη να ενωσει τις αλλαγες με το προηγουμενο αρχειο. Αν εντοπισει συγκρουση, δηλαδη εχει πειραχτει ιδια γραμμη και απο τους 2 συνεργατες, τοτε θα παραπονεθει με μηνυμα [automatic merge failed] και θα πρεπει να επιλυθει χειροκινητα, δηλαδη να ανοιχτει το αρχειο και να μεινουν μονο οι επιθυμητες αλλαγες, και να σβηστουν τα υπολοιπα που εχει φτιαξει το git για να βοηθησει στην επιλυση του conflict.[/list]