Βάιος Κολοφωτιάς Msc Informational Systems. Μια εισαγωγή στο GIT



Σχετικά έγγραφα
Εργαστήριο 2. Εισαγωγή στο Git Versioning System

Σεμινάριο Git & GitLab. Γιώργος Τσιάτσιος Δημήτρης Κάσσος

Σύντομος Οδηγός Github Μηνάς Δασυγένης (

Θερινό Σχολείο, Ιουλίου Εισαγωγή στο. Αχιλλέας Πιπινέλης. Μονάδα Αριστείας ΕΛ/ΛΑΚ ΤΕΙ Αθήνας

Σεμινάριο Git & GitLab. Τάκης Παναγόπουλος Νικόλας Μπομπέτσης

Subversion. Τριγάζη Ελισάβετ. Επιβλέπων: Μηνάς Δασυγένης

Σεμινάριο Git & GitHub. Θέμης Παπαμελετίου Διονύσης Ζήνδρος

Οδηγός για το... Git & Github

Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών ΗΥ463 Συστήματα Ανάκτησης Πληροφοριών Χειμερινό Εξάμηνο

Αρχιτεκτονική Υπολογιστών

Σεμινάριο Git & GitHub Ημέρα 2

Εισαγωγή στα SCM εργαλεία και στο Subversion

Version Control Systems Mercurial SCM. Μανώλης Κιαγιάς

Μια εισαγωγή στο Linux με την διανομή Fedora. Βάιος Κολοφωτιάς MSc Informational Systems

SUBVERSION. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Δ. Ζήνδρος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Π : Εγχειρίδια χρήσης της υπηρεσίας για τα κύρια υποστηριζόμενα Λειτουργικά

Ενσωματωμένα Συστήματα

Άδειες open source Εργαλεία Ανάπτυξης Κώδικα ΕΛ/ΛΑΚ. Απόστολος Βόγκλης Βασίλειος Καραβασίλης Μονάδα Αριστείας ΕΛΛΑΚ ΕΤΕΠΗ 9/3/2015

Άδειες open source Εργαλεία Ανάπτυξης Κώδικα ΕΛ/ΛΑΚ. Απόστολος Βόγκλης Βασίλειος Καραβασίλης Μονάδα Αριστείας ΕΛΛΑΚ ΕΤΕΠΗ 22/10/2014

Εργαλεία Ανάπτυξης Κώδικα ΕΛ/ΛΑΚ. Απόστολος Βόγκλης Βασίλειος Καραβασίλης Μονάδα Αριστείας ΕΛΛΑΚ ΕΤΕΠΗ 25/06/2014

Open eclass Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης

Tο περιβάλλον Code::Blocks

TasPython. Εισαγωγή στο Mercurial

CS255 - Programming Lab

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP

Εργαστήριο 3. Εγκατάσταση LAMP Stack στο AWS

Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης eclass 2.0. Οδηγίες Αναβάθµισης (Upgrade) Αθήνα, 1 Ιουνίου Εισαγωγή

Hase οδηγίες χρήσης.

Hase οδηγίες χρήσης.

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο. Εργαστηριακή Άσκηση 1 17/01/2012

Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης eclass 1.7. Οδηγίες Αναβάθμισης (Upgrade) Αθήνα, 16 Μαρτίου Εισαγωγή

Σύντομη εισαγωγή στο λειτουργικό σύστημα Linux

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΜΣ ΕΠΙΣΤΗΜΗ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ Η/Υ

Ενσωματωμένα Συστήματα

Προγραμματισμός Ι. Εργαστήριο 1 ο Περιβάλλον Εργασίας. Νικόλαος Δ. Τσελίκας Κυριακή Θ. Σεκλού

1. Τρόποι πρόσβασης στο σας

server : Ο υπολογιστής του καθηγητή που θέλουμε να ελέγχει τους υπόλοιπους του εργαστηρίου client : Οι υπολογιστές των μαθητών

Μανώλης Κιαγιάς, MSc. Aiolos Project. Αρχικές Ρυθμίσεις SSH και εγκατάσταση OpenMPI

Σταύρος Καουκάκης Ευτύχιος Βαβουράκης

ΕΓΚΑΤΑΣΤΑΣΗ ΕΦΑΡΜΟΓΩΝ ΓΙΑ ΠΡΟΣΩΠΙΚΟ ΥΠΟΛΟΓΙΣΤΗ (MS WINDOWS, LINUX, MACOS)

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Ρυθµ θ ίσ ί ε σ ις ς e-mai a l i dsp s ei e ra r i a a.gr g

Οδηγίες εγκατάστασης και χρήσης Java σε προσωπικό υπολογιστή

ΟΔΗΓΙΕΣ ΣΥΝΔΕΣΗΣ ΣΤΟ ΑΣΥΡΜΑΤΟ ΔΙΚΤΥΟ eduroam

Hase οδηγίες χρήσης.

CYGWIN Οδηγίες Χρήσης (Συγγραφέας: Γιώργος ούκας)

Αραπογιάννης Β. Τεχν.ΚΕΠΛΗΝΕΤ Αγρινίου

Εθνικό Μετσόβιο Πολυτεχνείο. Διπλωματική Εργασία

ΔΗ Μ Ι Ο ΥΡ Γ Ι Α W I K I με τ η χρήση τ η ς υπ ηρεσίας h t t p : / id ot.com /

ΚΕΦΑΛΑΙΟ 1. Εισαγωγή στην Python. 1.1 Εισαγωγή

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τµήµα Πληροφορικής ΕΠΛ 646 Προχωρηµένα Θέµατα Βάσεων Δεδοµένων

Για περισσότερες πληροφορίες σχετικά με τη συμβατότητα του λογισμικού με άλλα λειτουργικά συστήματα, επικοινωνήστε με το τμήμα υποστήριξης πελατών.

1. Τρόποι πρόσβασης στο σας

ARTius με PostgreSQL

Εργαστήριο 4 Ασκήσεις: Διαχείριση Δικτύου (nmap, iptables) και Προχωρημένες Εντολές Unix (grep, ps, cut, find)

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Εργαστήριο Εγκατάσταση Ubuntu με VirtualBox Εγκατάσταση Ubuntu με Unetbootin Απομακρυσμένη πρόσβαση με Putty/WinSCP

Εγκατάσταση του εκτυπωτή από το CD λογισμικού και τεκμηρίωσης

ΠΑΓΚΑΛΟΣ ΙΩΑΝΝΗΣ ΣΙΣΜΑΝΗΣ ΝΙΚΟΣ. File Transfer Protocol

ΕΠΛ425 : Τεχνολογίες Διαδικτύου Εργαστήρια

Dropbox. Τι είναι Dropbox; ΓΕΝΙΚΑ

ιαχείριση Πληροφοριών στο ιαδίκτυο

Εγκατάσταση και Διαχείριση Σχολικών Εργαστηρίων με Λογισμικό Ανοικτού Κώδικα

Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ

Δίκτυα Η/Υ στην Επιχείρηση

Οδηγίες για την εγκατάσταση του πακέτου Cygwin

Οδηγίες Χρήσης της MySQL

ΡΥΘΜΙΣΕΙΣ ΓΙΑ ΔΥΝΑΜΙΚΟ IP

Μεταφορά Αρχείων µε χρήση της Υπηρεσίας FTP σελ. 1

Πώς τροποποιούμε το Invenio;

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

PRISMA Win POS Sync Merge Replication

Ο ArcCatalog χρησιμοποιείται για την πλοήγηση / διαχείριση χωρικών δεδοµένων.

Λειτουργικό Σύστημα Linux ~ Μια σύντομη εισαγωγή

Οδηγός χρήσης Εργαστηρίου UNIX (B103) Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου

«Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - by e-base.gr»

Tο περιβάλλον Code::Blocks

Εγχειρίδιο εγκατάστασης και χρήσης περιοδικών etwinning

JOOMLA CMS ΒΑΣΙΚΗ ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ (PART I)

Οδηγός Χρήσης Εργαστηρίων UNIX (LINUX) B103 και 103 και απομακρυσμένης πρόσβασης με την χρήση Free NX

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 4 η. Βασίλης Στεφανής

ΠΡΟΑΙΡΕΤΙΚΑ ΣΕΜΙΝΑΡΙΑ Πληροφορική και Επιστήμη Ηλεκτρονικών Υπολογιστών

Εγκατάσταση λογαριασμού ηλεκτρονικού ταχυδρομείου στο MICROSOFT OUTLOOK

ΟΔΗΓΟΣ ΕΓΚΑΤΑΣΤΑΣΗΣ ΤΟΥ Stuttgart Neural Network Simulator (SNNS)

Οδηγός σύνδεσης στο δίκτυο του ΤΕΠΑΚ μέσα από την υπηρεσία απομακρυσμένης πρόσβασης VPN Τεχνολογικό Πανεπιστήμιο Κύπρου

Οδηγίες Εγκατάστασης της MySQL

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Ενημερωτικός οδηγός για τον εξυπηρετητή Ada

Vodafone Business Connect

Οδηγίες Χρήσης της MySQL

Σε κάθε διανομή μπορεί να παρέχονται διαφορετικοί windows manager όπως: Xfe (Xubuntu) Gnome, (Debian,Ubuntu) KDE, (Kubuntu, Mandriva)

Αρχιτεκτονική Υπολογιστών

Πως θα κατασκευάσω το πρώτο πρόγραμμα;

ΕΓΧΕΙΡΙΔΙΟ ΥΠΗΡΕΣΙΑΣ ΣΥΛΛΟΓΙΚΗΣ ΕΠΕΞΕΡΓΑΣΙΑΣ ΕΓΓΡΑΦΩΝ

Είσοδος στην Υπηρεσία WebMail

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Tο περιβάλλον Code::Blocks

Transcript:

Βάιος Κολοφωτιάς Msc Informational Systems Μια εισαγωγή στο GIT

Ιστορία GIT (NOUN) British English slang roughly equivalent to "unpleasant person" "I'm an egotistical bastard, and I name all my projects after myself. First 'Linux', now 'git'. " Linus Torvalds

Ιστορία Το Git είναι ένα κατανεμημένο σύστημα ελέγχου αναθεώρησεων(revisions) και διαχείρισης κώδικα (SCM) με έμφαση στην ταχύτητα, την ακεραιότητα των δεδομένων καθώς και υποστήριξη για κατανεμημένες, μη γραμμικές ροές εργασίας(workflows). To Git είχε αρχικά σχεδιαστεί και αναπτύχθει από τον Linus Torvalds για την διαχείριση της ανάπτυξης του πυρήνα Linux, το 2005, και έκτοτε έχει γίνει το πιο διαδεδομένο σύστημα ελέγχου για την ανάπτυξη λογισμικού. Όπως με τα περισσότερα άλλα κατανεμημένα συστήματα ελέγχου αναθεώρησης, και σε αντίθεση με τα περισσότερα συστήματα client-server, κάθε κατάλογος εργασίας Git είναι ένα πλήρες αποθετήριο με πλήρη ιστορία και όλες τις εκδόσεις με δυνατότητες παρακολούθησης, ανεξάρτητα από την πρόσβαση στο δίκτυο ή έναν κεντρικό server. Όπως και τον πυρήνα του Linux,το Git είναι ελεύθερο λογισμικό και διανέμεται υπό τους όρους της έκδοσης άδειας GNU General Public 2. Η ανάπτυξη του Git άρχισε στις 3 Απριλίου 2005. Το πρόγραμμα ανακοινώθηκε στις 6 Απριλίου και έγινε self-hosting από τις 7 Απριλίου. Το πρώτο merge των πολλαπλών κλαδιών έγινε στις 18 Απριλίου. Ο Torvalds πέτυχε τους στόχους που είχε θέσει για την απόδοσή του στις 29 Απριλίου. Στις 16 Ιουνίου το Git διαχειρίζεται την έκδοση του πυρήνα 2.6.12. Ο Torvalds έδωσε την συντήρηση(maintenance) του project Junio Hamano, σημαντικό contributor, στις 26 Ιουλίου 2005. O Hamano ήταν υπεύθυνος για την έκδοση 1.0 στις 21 Δεκεμβρίου 2005, και παραμένει συντηρητής του έργου

Η man page του GIT

Εγκατάσταση του GIT σε Ubuntu Ανοίγουμε ένα τερματικό (πατάμε Alt+F2 και γράφουμε gnome-terminal σε Gnome) και γράφουμε την ακόλουθη εντολή για την εγκατάσταση. Σε 11.04: sudo apt-get install git ή σε 10.04: sudo apt-get install git-core Αφού ολοκληρωθεί η εγκατάσταση, πρέπει να δώσουμε κάποιες παραμέτρους στο Git: git config --global user.name "Όνομα Επώνυμο" git config --global user.email "myemailaddress@myprovider.com"

Εγκατάσταση του GIT σε Ferora και μεταγλώτιση από τον πηγαίο κώδικα Για Fedora τρέχουμε την εντολή: yum install git-core Για μεταγλώτιση από τον πηγαίο κώδικα θα χρειαστεί να έχετε τις ακόλουθες βιβλιοθήκες στις οποίες βασίζεται το Git: curl, zlib, openssl, expat, and libiconv. Για παράδειγμα, αν είστε σε ένα σύστημα που χρησιμοποιεί yum (όπως το Fedora) ή apt-get (όπως ένα Debian based system-ubuntu), μπορείτε να χρησιμοποιήσετε μια από τις ακόλουθες εντολές για να εγκαταστήσετε τις εξαρτήσεις(dependencies): $ yum install curl-devel expat-devel gettext-devel \ openssl-devel zlib-devel $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \ libz-dev libssl-dev

Μεταγλώτιση από πηγαίο κώδικα Όταν έχετε όλες τις απαραίτητες εξαρτήσεις, μπορείτε να πάρετε το τελευταίο snapshot από το site του GIT: http://git-scm.com/download Στη συνέχεια, μεταγλωτίστε και εγκαταστήστε:: $ tar -zxf git-1.7.2.2.tar.gz $ cd git-1.7.2.2 $ make prefix=/usr/local all $ sudo make prefix=/usr/local install Αφού γίνει αυτό μπορείτε να πάρετε το Git από το Git(!) για να παίρνετε τις ενημερώσεις: $ git clone git://git.kernel.org/pub/scm/git/git.git

Χαρακτηριστικά του GIT Ισχυρή υποστήριξη για μη-γραμμική ανάπτυξη Κατανεμημένη ανάπτυξη Συμβατότητα με τα υπάρχοντα συστήματα / πρωτόκολλα (http, ftp, svn, ssh) Αποτελεσματική διαχείριση μεγάλων έργων Cryptographic authentication of history Toolkit-με based σχεδιασμός Pluggable στρατηγικές συγχώνευσης

Δημιουργία ενός καινούργιου αποθετηρίου & δημιουργία αντιγράφου υπάρχοντος - Φτιάξτε ένα καινούριο φάκελο με την εντολή Mkdir new Ανοίξτε τον και εκτελέστε την εντολή git init Για να φτιάξετε ένα καινούργιο GIT αποθετήριο(repository) - Δημιουργήστε ένα λειτουργικό αντίγραφο ενός τοπικού αποθετηρίου με την εντολή: git clone /path/to/repository Όταν χρησιμποιείται απόμακρυσμένο server, η εντολή σας θα είναι: git clone username@host:/path/to/repository

Workflow(Ροή Εργασίας) Το τοπικό repository σας αποτελείται από τρία «δέντρα» που τηρούνται από το git. Το πρώτο είναι ο Κατάλογος εργασίας(working directory) σας, o οποίος έχει τα πραγματικά αρχεία. Το δεύτερο είναι το index που λειτουργεί ως χώρος στάσης Και το τρίτο είναι το Head(κεφαλή), το οποίο το οποίο δείχνει το τελευταίο commit που έχετε κάνει.

add & commit(προσθήκη και υποβολή) Μπορείτε να προτείνετε αλλαγές (προσθήκες στο Index) χρησιμοποιώντας τις εντολές: git add <filename> git add * Αυτό είναι το πρώτο βήμα στη βασική ροή εργασία του git. Για να γίνουν πράγματι οι αλλαγές αυτές χρησιμοποιούμε την εντολή git commit -m "Commit message" Τώρα το αρχείο γίνεται commit στο HEAD, αλλά όχι ακόμα στο απομακρυσμένο αποθετήριο

Κάνοντας push τις αλλαγές Οι αλλαγές σας είναι τώρα στο Head του τοπικού αντίγραφο εργασίας σας. Για να στείλετε τις αλλαγές αυτές στο απομακρυσμένο server σας, εκτελέστε git push origin master Αλλάξετε το master σε όποιο κλαδί(branch) θέλετε να ωθήσει τις αλλαγές σας. Αν δεν έχετε κάνει clone ένα υπάρχον αποθετήριο και θέλετε να συνδέσετε το repository σας σε έναν απομακρυσμένο server, θα πρέπει να το προσθέσετε με git remote add origin <server> Τώρα είστε σε θέση να προωθήσετε τις αλλαγές σας στο επιλεγμένο απομακρυσμένο server

Branching(δημιουργώντας κλαδιά!) Τα branches χρησιμοποιούνται για να αναπτυχθούν χαρακτηριστικά(features) απομονωμένα το ένα από το άλλο. Το master branch είναι το default branch μόλις φτιάξουμε ένα αποθετήριο. Χρησιμοποιήστε άλλα branch για την ανάπτυξη και κάντε τα merge(συγχώνευση) πίσω στο main branch μετά την ολοκλήρωση.

Branching(δημιουργώντας κλαδιά!) Φτιάξτε ένα καινούριο branch με το όνομα feature_x και χρησιμοποιήστε αυτό με την εντολή git checkout -b feature_x Γυρίστε πίσω στο master branch με git checkout master Και σβήστε το branch με την εντολή git branch -d feature_x Το branch δεν είναι διαθέσιμο σε άλλους μέχρι να το κάνετε push σε ένα απομακρυσμένο αποθετήριο git push origin <branch>

update & merge(ενημέρωση & συγχώνευση) Για να ενημερώσετε το τοπικό repository σας στο νεότερο commit εκτελέστε git pull στον κατάλογο εργασίας σας για να φέρει και να κάνει merge τις απομακρυσμένες αλλαγές. Για να συγχωνεύσει(merge) ένα άλλο branch στo ενεργό branch σας (π.χ. Master), χρησιμοποιήστε git merge <branch> και στις δύο περιπτώσεις το git προσπαθεί να κάνει auto-merge τις αλλαγές. Δυστυχώς, αυτό δεν είναι πάντα δυνατό και οδηγεί σε συγκρούσεις(conflicts).

update & merge(ενημέρωση & συγχώνευση) Είστε υπεύθυνοι για τη συγχώνευση αυτών των συγκρούσεων και πρέπει να κάνετε επεξεργασία των αρχείων που εμφανίζονται από το git, με το χέρι. Μετά την αλλαγή, θα πρέπει να τα επισημάνετε ως merged με git add <filename> πρίν να κάνετε merge τις αλλαγές μπορείτε να τις δείτε με τη εντολή git diff <source_branch><target_branch>

Ετικέτες(tagging) Συνιστάται να δημιουργήσετε ετικέτες για τις εκδόσεις λογισμικού, ένα γνωστό concept το οποίο υπάρχει επίσης και στο SVN. Μπορείτε να δημιουργήσετε μια νέα ετικέτα που ονομάζεται 1.0.0 εκτελώντας git tag 1.0.0 1b2e1d63ff το 1b2e1d63ff υπάρχει για τους πρώτους 10 χαρακτήρες του commit id στο οποίο θέλετε να παραπέμψετε με την ετικέτα σας.

Log Στην απλούστερη μορφή του, μπορείτε να μελετήσετε την ιστορία του αποθετήριου χρησιμοποιώντας git log Μπορείτε να προσθέσετε πολλές παραμέτρους για να κάνει το log να μοιάζει με ό, τι θέλετε. Για να δείτε μόνο τα commits ενός συγκεκριμένου author: git log --author=bob Για να δείτε ένα πολύ συμπιεσμένο αρχείο καταγραφής(log) όπου κάθε commit είναι μία γραμμή: log git --pretty=oneline Ή μπορεί να θέλετε να δείτε ένα δέντρο ASCII όλων των branches, διακοσμημέo με τα ονόματα των ετικετών και των branches: git log --graph --oneline --decorate all Δείτε μόνο ποία αρχεία έχουν αλλάξει: git log --name-status Αυτές είναι μόνο μερικές από τις παραμέτρους που μπορείτε να χρησιμοποιήσετε. Για περισσότερες πληροφορίες, δείτε το αρχείο καταγραφής git - help

Αντικατάσταση τοπικών αλλαγών Σε περίπτωση που κάνατε κάτι λάθος, μπορείτε να αντικαταστήσετε τις τοπικές αλλαγές χρησιμοποιώντας την εντολή git checkout - <filename> αυτό αντικαθιστά τις αλλαγές στο δέντρο εργασίας σας(working tree) με τα τελευταία περιεχομένα του HEAD. Οι αλλαγές που έχουν ήδη προστεθεί στο Index, καθώς και τα νέα αρχεία, θα διατηροται Αν, αντί γι αυτό,να θέλετε να κάνετε drop όλες τις τοπικές αλλαγές σας και commits, φέρτε το τελευταίο history από τον server και κατευθύνεται το τοπικό master branch σε αυτό, έτσι: git fetch origin git reset --hard origin/master

Χρήσιμα hints built-in git GUI gitk Χρήση πολύχρωμου git output git config color.ui true Εμφάνιση log με μία γραμμή σε κάθε commit git config format.pretty oneline χρήση interactive adding git add -i

Git To GitHub είναι μια Git web-based υπηρεσία φιλοξενίας αποθετηρίων που προσφέρει όλες τις λειτουργίες του Git, καθώς και πολλά δικά της χαρακτηριστικά. Σε αντίθεση με το Git που είναι ένα εργαλείο γραμμής εντολών, το Github παρέχει ένα γραφικό περιβάλλον επιφάνειας εργασίας, ένα web-based, καθώς και έκδοση για κινητά. Παρέχει, επίσης, έλεγχο πρόσβασης και πολλές δυνατότητες συνεργασίας, όπως wikis, task management, και εργαλεία παρακολούθησης σφαλμάτων και feature requests για κάθε έργο. To GitHub προσφέρει τόσο επαγγελματικά πλάνα για ιδιωτικά αποθετήρια(με πληρωμή), καθώς και δωρεάν λογαριασμούς, τα οποία χρησιμοποιούνται συνήθως για να φιλοξενήσουν έργα ανοικτού κώδικα. Μέχρι και το 2014, το Github έχει πάνω από 3,4 εκατομμύρια χρήστες, καθιστώντας το τον μεγαλύτερο code host στον κόσμο. To GitHub έχει γίνει τόσο διαδεδομένο μεταξύ της κοινότητας ανάπτυξης ανοιχτού κώδικα, που πολλοί εργοδότες έχουν αρχίσει να το χρησιμοποιούν σαν αντικατάσταση σε σχέση με ένα συμβατικό βιογραφικό και απαιτούν απαιτούν οι υποψήφιοι να έχουν ενεργό λογαριασμό GitHub, προκειμένου να πληρούν τις προϋποθέσεις για μια θέση εργασίας.

Ρύθμιση του GitHub και συγχρονισμός με το Git. Πάμε στο http://www.github.com και δημιουργούμε έναν δωρεάν λογαριασμό. Δημιουργούμε στον υπολογιστή μας ένα κλειδί SSH, το οποίο απαιτείται για την επικοινωνία με το github.com ssh-keygen -t rsa -C "myemailaddress@myprovider.com" Βάζουμε έναν κωδικό και το αποθηκεύουμε στο default μέρος. Θα δούμε τον κωδικό που δημιουργήθηκε, πατώντας ls -l ~/.ssh/ Το id_rsa.pub περιέχει το δημόσιο κλειδί, το οποίο θα δώσουμε στο github, ενώ το id_rsa είναι το ιδιωτικό, το οποίο το κρατάμε μόνο για εμάς. Βάζουμε το δημόσιο κλειδί στο github.com > Account Settings > SSH Public Keys > Add another public key.

Ρύθμιση του GitHub και συγχρονισμός με το Git. Για να φτιάξουμε ένα νέο αποθετήριο στο github.com, πάμε στην αρχική του σελίδα και πατάμε στο Create a new repository. Ακολουθούμε τις οδηγίες και πατάμε τις εντολές που μας εμφανίζει στο τερματικό, ενώ βρισκόμαστε στον κατάλογο του αποθετηρίου μας. Τώρα ο κώδικάς μας βρίσκεται στο αποθετήριο που δημιουργήσαμε στο GitHub. Αν έχουμε προσθέσει κάποιον συνεργάτη (collaborator) στο GitHub για το αποθετήριο και έχει προβεί σε κάποιες αλλαγές, μπορούμε να ενημερώσουμε το αποθετήριο στον υπολογιστή μας με την εντολή git pull --rebase Για να κατεβάσουμε κώδικα από το GitHub στον υπολογιστή μας, βρίσκουμε το αποθετήριο που μας ενδιαφέρει, παίρνουμε το URL για το Git Read-Only και γράφουμε git clone URL

Χρήσιμα Links Git Community Book: http://git-scm.com/book Think like a Git: http://think-like-a-git.net/ GitHub Help: https://help.github.com/ A visual Git Guide: http://marklodato.github.io/visual-git-guide/index -en.html Intro to Git & GitHub: https://speakerdeck.com/matthewmccullough/intr o-to-git-and-github Git to SVN: http://www.slideshare.net/itbooze/git-11446659 Git Basics: http://almar.io/2013/10/git-basics-git-flow-presen tation/ Git for beginners: The definitive practical guide: http://stackoverflow.com/questions/315911/git-for -beginners-the-definitive-practical-guide

Ευχαριστώ για την προσοχή σας!