SlideShare a Scribd company logo
1 of 14
Download to read offline
Εισαγωγή στο git
Δομημένος Προγραμματισμός
Τσαγκατάκης Ιωάννης
2
Τι είναι το git
●
Το git είναι ένα κατανεμημένο σύστημα διαχείρισης εκδόσεων αρχείων
Distributed Version Control System DVCS
– Παρακολουθεί τις αλλαγές σε ένα σύνολο αρχείων κρατώντας στιγμιότυπά τους.
– Το σύνολο στιγμιοτύπων ονομάζεται αποθετήριο (repository) repository)
●
Ολα τα αρχεία και υποκατάλογοι κάτω από ένα «πατρικό» κατάλογο
●
Το αποθετήριο υπάρχει σε πολλούς υπολογιστές ταυτόχρονα
– Κανένας δεν παίζει τον ρόλο κάποιου κεντρικού server
– Τεχνικά οι υπολογιστές είναι ίσοι
●
Το έχει φτιάξει ο Linus Torvalds, o αρχικός προγραμματιστής του Linux kernel.
3
Χρήσεις
●
Επιστροφή σε μια παλιότερη έκδοση
●
Ιστορικό αλλαγών και αιτία για κάθε γραμμή ενός κώδικα
●
Συνεργασία πολλών προγραμματιστών ταυτόχρονα πανω
στον ίδιο κώδικα
●
Ανάπτυξη σε πολλές παραλλαγές ενός κώδικα ταυτόχρονα
4
Τι είναι το GitHub
●
Μια cloud υπηρεσία για φιλοξενία αποθετηρίων
– Υπάρχουν πολλές άλλες
●
Δωρεάν, αν ο κώδικας είναι δημόσια ορατός
– Ο κώδικας εκεί μετράει περισσότερο από ένα πτυχίο
●
Περιέχει επιπρόσθετες υπηρεσίες
– Wiki, issues
5
Ένα τοπικό αποθετήριο
●
Ο Φάκελος εργασίας
– Ότι είναι εδώ δεν το θεωρούμε φυλαγμένο
●
Index Προσωρινός χώρος
●
Ιστορικό
– Χώρος φύλαξης
– HEAD Η τελευταία έκδοση
History:
Commits
commit
add
rm
HEAD
Local
Working
Directory
Index
stage
area
6
Κλάδοι (repository) Branching)
●
Παράλληλα ιστορικά
ανάπτυξης ενός κώδικα
– master: ο αρχικός κλάδος
●
Ελευθερία στο πως θα
χωρίσουμε ένα έργο σε
κλάδους
masterdevelophotfix-1feature-1feature-2
0.1
1.0
0.2
tags
Branchs
7
Χρησιμοποιώντας κλάδους
checkout Αλλαγή μεταξύ κλάδων
branch Δημιουργία ενός κλάδου
merge Συνένωση δυο ή περισσότερων κλάδων
tag Προσθήκη ετικέτας
8
Ένα απομακρυσμένο αποθετήριο
●
Μπορεί να έχω επίσης ένα ή πολλά απομακρυσμένα (repository) remote) αποθετήρια
●
origin = το αρχικό αποθετήριο
Local
Working
directory
History:
Commits
Index
stage
area
Remote
repository
origin
push
clone
fetch
pull
commit
add
rm
Local
Computer
HEAD
9
Βασικές εργασίες :1
●
Clone – Δημιουργία αντιγράφου
●
Config – Βασικές ρυθμίσεις
●
Add – Προσθήκη αρχείων στο index
●
Commit – Αποθήκευση στο ιστορικό
– Πρώτα κάνω add τα αρχεία
– Μετά τα κάνω commit μαζί με ένα μικρό κείμενο
– Στέλνω τις αλλαγές στο remote (repository) αν έχω)
– Στέλνω αίτημα αποδοχής αλλαγών σε τρίτο
add
commit
10
Βασικές εργασίες :2
●
Status - Πληροφορίες κατάστασης
●
Log – Προβολή ιστορικού αλλαγών
●
Diff – Αλλαγές μεταξύ 2 σημείων
●
Revert, reset, clean – Απόρριψη αλλαγών
●
Checkout – Επιλογή παλιών αρχείων
11
Βασικές εργασίες :3
●
Κλάδοι
– branch
– Checkout
– merge
●
Remotes
– fetch
– pull
– push
12
Μαθαίνοντας το git
●
Έστω τα βασικά
– git init
– git commit
●
Μαζί με ένα
– IDE
– GUI
●
Θα βοηθήσει πολύ σε
όλες τις εργασίες
●
Βασική δεξιότητα
●
Πολλές πηγές και
μαθήματα στο
διαδίκτυο
13
Χρήση του git
●
Από γραμμή εντολών
●
Σε γραφικό περιβάλλον
●
Μέσα απο το IDE
Tortoise Git
14
Ερωτήσεις;
“Ιστορία μου αμαρτία μου λάθος μου μεγάλο ”
Ρίτα Σακελλαρίου

More Related Content

Similar to Git intro

Software Libre Society - GNU/Linux Installfest Presentation - 2/2
Software Libre Society - GNU/Linux Installfest Presentation - 2/2Software Libre Society - GNU/Linux Installfest Presentation - 2/2
Software Libre Society - GNU/Linux Installfest Presentation - 2/2Kyriakos Giannakis
 
Διαχείριση Ψηφιακού Περιεχομένου με το DSpace: Λειτουργία και τεχνικά ζητήματα
Διαχείριση Ψηφιακού Περιεχομένου με το DSpace: Λειτουργία και τεχνικά ζητήματαΔιαχείριση Ψηφιακού Περιεχομένου με το DSpace: Λειτουργία και τεχνικά ζητήματα
Διαχείριση Ψηφιακού Περιεχομένου με το DSpace: Λειτουργία και τεχνικά ζητήματαNikolaos Konstantinou
 
Pantelidou Eirini: Design and development of a system for incremental static ...
Pantelidou Eirini: Design and development of a system for incremental static ...Pantelidou Eirini: Design and development of a system for incremental static ...
Pantelidou Eirini: Design and development of a system for incremental static ...Manos Tsardoulias
 
Κεφάλαιο 4 Λογισμικό συστήματος
Κεφάλαιο 4 Λογισμικό συστήματοςΚεφάλαιο 4 Λογισμικό συστήματος
Κεφάλαιο 4 Λογισμικό συστήματοςEleni Kokkinou
 
Παρουσίαση Hadoop, MapReduce και Mahout στο 1o Hadoop UserGroup meetup
Παρουσίαση Hadoop, MapReduce και Mahout στο 1o Hadoop UserGroup meetupΠαρουσίαση Hadoop, MapReduce και Mahout στο 1o Hadoop UserGroup meetup
Παρουσίαση Hadoop, MapReduce και Mahout στο 1o Hadoop UserGroup meetupIoannis Konstantinou
 
1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού
1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού
1η διάλεξη Τεχνολογίες Παγκόσμιου ΙστούManolis Vavalis
 
Unix Basic commands (Βασικές εντολές του λειτουργικού συστήματος unix)
Unix Basic commands (Βασικές εντολές του λειτουργικού συστήματος unix)Unix Basic commands (Βασικές εντολές του λειτουργικού συστήματος unix)
Unix Basic commands (Βασικές εντολές του λειτουργικού συστήματος unix)MakisKapetis
 
Unix Basic Commands (Βασιkές εντολές του UNIX)
Unix Basic Commands (Βασιkές εντολές του UNIX)Unix Basic Commands (Βασιkές εντολές του UNIX)
Unix Basic Commands (Βασιkές εντολές του UNIX)MakisKapetis
 
Drupal CMS, μια σύντομη παρουσίαση
Drupal CMS, μια σύντομη παρουσίασηDrupal CMS, μια σύντομη παρουσίαση
Drupal CMS, μια σύντομη παρουσίασηJonny Arvanitakis
 
NoSQL: Μη-σχεσιακές βάσεις δεδομένων για υψηλή κλιμάκωση σε web applications
NoSQL: Μη-σχεσιακές βάσεις δεδομένων για υψηλή κλιμάκωση σε web applicationsNoSQL: Μη-σχεσιακές βάσεις δεδομένων για υψηλή κλιμάκωση σε web applications
NoSQL: Μη-σχεσιακές βάσεις δεδομένων για υψηλή κλιμάκωση σε web applicationsStelios Karabasakis
 
KTurtle: Διδασκαλία Προγραμματισμού στο Γυμνάσιο
KTurtle: Διδασκαλία Προγραμματισμού στο ΓυμνάσιοKTurtle: Διδασκαλία Προγραμματισμού στο Γυμνάσιο
KTurtle: Διδασκαλία Προγραμματισμού στο ΓυμνάσιοPeriklis Georgiadis
 
Ruby On Rails Introduction [Εισαγωγή στο Rails]
Ruby On Rails Introduction [Εισαγωγή στο Rails]Ruby On Rails Introduction [Εισαγωγή στο Rails]
Ruby On Rails Introduction [Εισαγωγή στο Rails]Nikos Dimitrakopoulos
 
Εφαρμογές Πληροφορικής Κεφ. 4 Λογισμικό
Εφαρμογές Πληροφορικής Κεφ. 4 ΛογισμικόΕφαρμογές Πληροφορικής Κεφ. 4 Λογισμικό
Εφαρμογές Πληροφορικής Κεφ. 4 Λογισμικό11lykperist
 
T3 fosscomm2010
T3 fosscomm2010T3 fosscomm2010
T3 fosscomm2010pkontaxis
 
Αρχεία - Φάκελοι
Αρχεία - Φάκελοι Αρχεία - Φάκελοι
Αρχεία - Φάκελοι kimanou
 
Ιστορική Αναδρομή στα Λειτουργικά Συστήματα – ο πυρήνας, ο φλοιός.
Ιστορική Αναδρομή στα Λειτουργικά Συστήματα – ο πυρήνας, ο φλοιός.Ιστορική Αναδρομή στα Λειτουργικά Συστήματα – ο πυρήνας, ο φλοιός.
Ιστορική Αναδρομή στα Λειτουργικά Συστήματα – ο πυρήνας, ο φλοιός.Georgios Giannopoulos
 

Similar to Git intro (20)

Ο βασιλιάς Git!
Ο βασιλιάς Git!Ο βασιλιάς Git!
Ο βασιλιάς Git!
 
Software Libre Society - GNU/Linux Installfest Presentation - 2/2
Software Libre Society - GNU/Linux Installfest Presentation - 2/2Software Libre Society - GNU/Linux Installfest Presentation - 2/2
Software Libre Society - GNU/Linux Installfest Presentation - 2/2
 
Διαχείριση Ψηφιακού Περιεχομένου με το DSpace: Λειτουργία και τεχνικά ζητήματα
Διαχείριση Ψηφιακού Περιεχομένου με το DSpace: Λειτουργία και τεχνικά ζητήματαΔιαχείριση Ψηφιακού Περιεχομένου με το DSpace: Λειτουργία και τεχνικά ζητήματα
Διαχείριση Ψηφιακού Περιεχομένου με το DSpace: Λειτουργία και τεχνικά ζητήματα
 
Pantelidou Eirini: Design and development of a system for incremental static ...
Pantelidou Eirini: Design and development of a system for incremental static ...Pantelidou Eirini: Design and development of a system for incremental static ...
Pantelidou Eirini: Design and development of a system for incremental static ...
 
Κεφάλαιο 4 Λογισμικό συστήματος
Κεφάλαιο 4 Λογισμικό συστήματοςΚεφάλαιο 4 Λογισμικό συστήματος
Κεφάλαιο 4 Λογισμικό συστήματος
 
Παρουσίαση Hadoop, MapReduce και Mahout στο 1o Hadoop UserGroup meetup
Παρουσίαση Hadoop, MapReduce και Mahout στο 1o Hadoop UserGroup meetupΠαρουσίαση Hadoop, MapReduce και Mahout στο 1o Hadoop UserGroup meetup
Παρουσίαση Hadoop, MapReduce και Mahout στο 1o Hadoop UserGroup meetup
 
1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού
1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού
1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού
 
Unix Basic commands (Βασικές εντολές του λειτουργικού συστήματος unix)
Unix Basic commands (Βασικές εντολές του λειτουργικού συστήματος unix)Unix Basic commands (Βασικές εντολές του λειτουργικού συστήματος unix)
Unix Basic commands (Βασικές εντολές του λειτουργικού συστήματος unix)
 
Unix Basic Commands (Βασιkές εντολές του UNIX)
Unix Basic Commands (Βασιkές εντολές του UNIX)Unix Basic Commands (Βασιkές εντολές του UNIX)
Unix Basic Commands (Βασιkές εντολές του UNIX)
 
Drupal CMS, μια σύντομη παρουσίαση
Drupal CMS, μια σύντομη παρουσίασηDrupal CMS, μια σύντομη παρουσίαση
Drupal CMS, μια σύντομη παρουσίαση
 
NoSQL: Μη-σχεσιακές βάσεις δεδομένων για υψηλή κλιμάκωση σε web applications
NoSQL: Μη-σχεσιακές βάσεις δεδομένων για υψηλή κλιμάκωση σε web applicationsNoSQL: Μη-σχεσιακές βάσεις δεδομένων για υψηλή κλιμάκωση σε web applications
NoSQL: Μη-σχεσιακές βάσεις δεδομένων για υψηλή κλιμάκωση σε web applications
 
KTurtle: Διδασκαλία Προγραμματισμού στο Γυμνάσιο
KTurtle: Διδασκαλία Προγραμματισμού στο ΓυμνάσιοKTurtle: Διδασκαλία Προγραμματισμού στο Γυμνάσιο
KTurtle: Διδασκαλία Προγραμματισμού στο Γυμνάσιο
 
Ruby On Rails Introduction [Εισαγωγή στο Rails]
Ruby On Rails Introduction [Εισαγωγή στο Rails]Ruby On Rails Introduction [Εισαγωγή στο Rails]
Ruby On Rails Introduction [Εισαγωγή στο Rails]
 
GNS3 Greek Presentation
GNS3 Greek Presentation GNS3 Greek Presentation
GNS3 Greek Presentation
 
Εφαρμογές Πληροφορικής Κεφ. 4 Λογισμικό
Εφαρμογές Πληροφορικής Κεφ. 4 ΛογισμικόΕφαρμογές Πληροφορικής Κεφ. 4 Λογισμικό
Εφαρμογές Πληροφορικής Κεφ. 4 Λογισμικό
 
ΛΣ1UFSv0
ΛΣ1UFSv0ΛΣ1UFSv0
ΛΣ1UFSv0
 
Εισαγωγή σε C# και .ΝΕΤ
Εισαγωγή σε C# και .ΝΕΤΕισαγωγή σε C# και .ΝΕΤ
Εισαγωγή σε C# και .ΝΕΤ
 
T3 fosscomm2010
T3 fosscomm2010T3 fosscomm2010
T3 fosscomm2010
 
Αρχεία - Φάκελοι
Αρχεία - Φάκελοι Αρχεία - Φάκελοι
Αρχεία - Φάκελοι
 
Ιστορική Αναδρομή στα Λειτουργικά Συστήματα – ο πυρήνας, ο φλοιός.
Ιστορική Αναδρομή στα Λειτουργικά Συστήματα – ο πυρήνας, ο φλοιός.Ιστορική Αναδρομή στα Λειτουργικά Συστήματα – ο πυρήνας, ο φλοιός.
Ιστορική Αναδρομή στα Λειτουργικά Συστήματα – ο πυρήνας, ο φλοιός.
 

More from jtsagata

Advanced Notes on Pointers
Advanced Notes on PointersAdvanced Notes on Pointers
Advanced Notes on Pointersjtsagata
 
GPGPU Computation
GPGPU ComputationGPGPU Computation
GPGPU Computationjtsagata
 
Eισαγωγή στο TDD
Eισαγωγή στο TDDEισαγωγή στο TDD
Eισαγωγή στο TDDjtsagata
 
Παιγνίδια με Πίνακες και Δείκτες
Παιγνίδια με Πίνακες και ΔείκτεςΠαιγνίδια με Πίνακες και Δείκτες
Παιγνίδια με Πίνακες και Δείκτεςjtsagata
 
Linux and C
Linux and CLinux and C
Linux and Cjtsagata
 
Greek utf8
Greek utf8Greek utf8
Greek utf8jtsagata
 
Function pointers in C
Function pointers in CFunction pointers in C
Function pointers in Cjtsagata
 
Why computers can' compute
Why computers can' computeWhy computers can' compute
Why computers can' computejtsagata
 
Τι είναι υπολογισμός
Τι είναι υπολογισμόςΤι είναι υπολογισμός
Τι είναι υπολογισμόςjtsagata
 
IEEE 754 Floating point
IEEE 754 Floating pointIEEE 754 Floating point
IEEE 754 Floating pointjtsagata
 
Η Τέχνη του TeX/LaTeX
Η Τέχνη του TeX/LaTeXΗ Τέχνη του TeX/LaTeX
Η Τέχνη του TeX/LaTeXjtsagata
 
Unikernels
UnikernelsUnikernels
Unikernelsjtsagata
 
FPGA on the Cloud
FPGA on the Cloud FPGA on the Cloud
FPGA on the Cloud jtsagata
 
Evolutionary keyboard Layout
Evolutionary keyboard LayoutEvolutionary keyboard Layout
Evolutionary keyboard Layoutjtsagata
 
Το εργαλείο
Το εργαλείοΤο εργαλείο
Το εργαλείοjtsagata
 

More from jtsagata (17)

Advanced Notes on Pointers
Advanced Notes on PointersAdvanced Notes on Pointers
Advanced Notes on Pointers
 
C locales
C localesC locales
C locales
 
GPGPU Computation
GPGPU ComputationGPGPU Computation
GPGPU Computation
 
Eισαγωγή στο TDD
Eισαγωγή στο TDDEισαγωγή στο TDD
Eισαγωγή στο TDD
 
Παιγνίδια με Πίνακες και Δείκτες
Παιγνίδια με Πίνακες και ΔείκτεςΠαιγνίδια με Πίνακες και Δείκτες
Παιγνίδια με Πίνακες και Δείκτες
 
Linux and C
Linux and CLinux and C
Linux and C
 
Greek utf8
Greek utf8Greek utf8
Greek utf8
 
Function pointers in C
Function pointers in CFunction pointers in C
Function pointers in C
 
Why computers can' compute
Why computers can' computeWhy computers can' compute
Why computers can' compute
 
Τι είναι υπολογισμός
Τι είναι υπολογισμόςΤι είναι υπολογισμός
Τι είναι υπολογισμός
 
IEEE 754 Floating point
IEEE 754 Floating pointIEEE 754 Floating point
IEEE 754 Floating point
 
Η Τέχνη του TeX/LaTeX
Η Τέχνη του TeX/LaTeXΗ Τέχνη του TeX/LaTeX
Η Τέχνη του TeX/LaTeX
 
Unikernels
UnikernelsUnikernels
Unikernels
 
FPGA on the Cloud
FPGA on the Cloud FPGA on the Cloud
FPGA on the Cloud
 
Evolutionary keyboard Layout
Evolutionary keyboard LayoutEvolutionary keyboard Layout
Evolutionary keyboard Layout
 
Omilia
OmiliaOmilia
Omilia
 
Το εργαλείο
Το εργαλείοΤο εργαλείο
Το εργαλείο
 

Git intro

  • 1. Εισαγωγή στο git Δομημένος Προγραμματισμός Τσαγκατάκης Ιωάννης
  • 2. 2 Τι είναι το git ● Το git είναι ένα κατανεμημένο σύστημα διαχείρισης εκδόσεων αρχείων Distributed Version Control System DVCS – Παρακολουθεί τις αλλαγές σε ένα σύνολο αρχείων κρατώντας στιγμιότυπά τους. – Το σύνολο στιγμιοτύπων ονομάζεται αποθετήριο (repository) repository) ● Ολα τα αρχεία και υποκατάλογοι κάτω από ένα «πατρικό» κατάλογο ● Το αποθετήριο υπάρχει σε πολλούς υπολογιστές ταυτόχρονα – Κανένας δεν παίζει τον ρόλο κάποιου κεντρικού server – Τεχνικά οι υπολογιστές είναι ίσοι ● Το έχει φτιάξει ο Linus Torvalds, o αρχικός προγραμματιστής του Linux kernel.
  • 3. 3 Χρήσεις ● Επιστροφή σε μια παλιότερη έκδοση ● Ιστορικό αλλαγών και αιτία για κάθε γραμμή ενός κώδικα ● Συνεργασία πολλών προγραμματιστών ταυτόχρονα πανω στον ίδιο κώδικα ● Ανάπτυξη σε πολλές παραλλαγές ενός κώδικα ταυτόχρονα
  • 4. 4 Τι είναι το GitHub ● Μια cloud υπηρεσία για φιλοξενία αποθετηρίων – Υπάρχουν πολλές άλλες ● Δωρεάν, αν ο κώδικας είναι δημόσια ορατός – Ο κώδικας εκεί μετράει περισσότερο από ένα πτυχίο ● Περιέχει επιπρόσθετες υπηρεσίες – Wiki, issues
  • 5. 5 Ένα τοπικό αποθετήριο ● Ο Φάκελος εργασίας – Ότι είναι εδώ δεν το θεωρούμε φυλαγμένο ● Index Προσωρινός χώρος ● Ιστορικό – Χώρος φύλαξης – HEAD Η τελευταία έκδοση History: Commits commit add rm HEAD Local Working Directory Index stage area
  • 6. 6 Κλάδοι (repository) Branching) ● Παράλληλα ιστορικά ανάπτυξης ενός κώδικα – master: ο αρχικός κλάδος ● Ελευθερία στο πως θα χωρίσουμε ένα έργο σε κλάδους masterdevelophotfix-1feature-1feature-2 0.1 1.0 0.2 tags Branchs
  • 7. 7 Χρησιμοποιώντας κλάδους checkout Αλλαγή μεταξύ κλάδων branch Δημιουργία ενός κλάδου merge Συνένωση δυο ή περισσότερων κλάδων tag Προσθήκη ετικέτας
  • 8. 8 Ένα απομακρυσμένο αποθετήριο ● Μπορεί να έχω επίσης ένα ή πολλά απομακρυσμένα (repository) remote) αποθετήρια ● origin = το αρχικό αποθετήριο Local Working directory History: Commits Index stage area Remote repository origin push clone fetch pull commit add rm Local Computer HEAD
  • 9. 9 Βασικές εργασίες :1 ● Clone – Δημιουργία αντιγράφου ● Config – Βασικές ρυθμίσεις ● Add – Προσθήκη αρχείων στο index ● Commit – Αποθήκευση στο ιστορικό – Πρώτα κάνω add τα αρχεία – Μετά τα κάνω commit μαζί με ένα μικρό κείμενο – Στέλνω τις αλλαγές στο remote (repository) αν έχω) – Στέλνω αίτημα αποδοχής αλλαγών σε τρίτο add commit
  • 10. 10 Βασικές εργασίες :2 ● Status - Πληροφορίες κατάστασης ● Log – Προβολή ιστορικού αλλαγών ● Diff – Αλλαγές μεταξύ 2 σημείων ● Revert, reset, clean – Απόρριψη αλλαγών ● Checkout – Επιλογή παλιών αρχείων
  • 11. 11 Βασικές εργασίες :3 ● Κλάδοι – branch – Checkout – merge ● Remotes – fetch – pull – push
  • 12. 12 Μαθαίνοντας το git ● Έστω τα βασικά – git init – git commit ● Μαζί με ένα – IDE – GUI ● Θα βοηθήσει πολύ σε όλες τις εργασίες ● Βασική δεξιότητα ● Πολλές πηγές και μαθήματα στο διαδίκτυο
  • 13. 13 Χρήση του git ● Από γραμμή εντολών ● Σε γραφικό περιβάλλον ● Μέσα απο το IDE Tortoise Git
  • 14. 14 Ερωτήσεις; “Ιστορία μου αμαρτία μου λάθος μου μεγάλο ” Ρίτα Σακελλαρίου