Οδηγίες χρήσης του Github

From Ελεύθερο Λογισμικό / Λογισμικό ανοιχτού κώδικα
Revision as of 13:04, 8 January 2016 by Pkst (talk | contribs)
Jump to navigation Jump to search
Δημιουργία λογαριασμού[edit | edit source]

https://github.com/join

Λήψη και Εγκατάσταση του git[edit | edit source]
Εγκατάσταση σε Linux[edit | edit source]

Για διανομές βασισμένες σε Debian(όπως το ubuntu)

sudo apt-get install git-core

ενώ, για διανομές βασισμένες σε Fedora

yum install git-core

TIP: Με την εντολή sudo aptitude search git εμφανίζονται πακέτα που σχετίζονται με το git.


Εγκατάσταση σε Windows[edit | edit source]

Η εγκατάσταση στα windows είναι πολύ εύκολη! Κατεβάστε από τον σύνδεσμο

https://git-scm.com/download/win το εκτελέσιμο αρχείο και τρέξτε το. Μόλις γίνει η

εγκατάσταση θα πρέπει να έχετε ένα πρόγραμμα Git Bash, σαν ένα απλό κέλyφος όπου

μπορείτε να εκτελείτε εντολές σχετικά με το git.

Για windows υπάρχει ακόμα ένα γραφικό περιβάλλον χρήσης . Αναλυτικές οδηγίες χρήσης του μπορείτε να βρείτε εδώ https://ellak.gr/wiki/index.php?title=GitHub


Εγκατάσταση σε Mac OS:
[edit | edit source]

https://git-scm.com/download/mac


Τι είναι το git;[edit | edit source]

Tο git είναι ένα σύστημα διαχείρισης εκδόσεων αρχείων

– Στα Αγγλικά: version control system

– Παρακολουθεί τις αλλαγές σε ένα σύνολο αρχείων κρατώντας στιγμιότυπά τους

– Το σύνολο στιγμιοτύπων ονομάζεται αποθετήριο ( repository)

Χρήσεις του git:[edit | edit source]

- συμμετοχή σε κοινά project, και έργα ανοικτού λογισμικού

– επιστροφή σε μια παλιότερη έκδοση αν έχει γίνει κάποιο λάθος

– δοκιμή παραλλαγών (ονομάζονται παρακλάδια -­‐ branches) χωρίς να επηρεάζεται η τρέχουσα κατάσταση των αρχείων

Τι είναι το GitHub[edit | edit source]

Το GitHub είναι ένας εξυπηρετητής που φιλοξενεί αποθετήρια και μια εύχρηστη διεπαφή ιστού

– υποστηρίζει όλες τις εντολές του git

– και παρέχει μερικές επιπλέον δυνατότητες

Είναι εξαιρετικά δημοφιλές

Επίσης παρέχει έλεγχο πρόσβασης και πολλές δυνατότητες συνεργασίας, όπως ανίχνευση σφαλμάτων, αιτήματα χαρακτηριστικών, διαχείριση εργασιών, και wikis για κάθε project.

Οι πρώτες Ρυθμίσεις[edit | edit source]

Στην εφαρμογή του git που εγκαταστήσαστε στον υπολογιστή σας θα πρέπει να κάνετε καπιοες ρυθμίσεις, δηλώνοντας το όνομα σας και το email σας

Πληκτρολογήστε ('η αντιγράψτε τις παρακάτω εντολές – αντικαθιστώντας τα Your Name και τα email@provider.com


git config --global user.name "Your Name”

git config --global user.email "email@provide.com”

Για email χρησιμοποιείστε τη διεύθυνση που δώσατε στο GitHub


Οδηγίες χρήσης του github
[edit | edit source]
Δημιουργία τοπικού αποθετηρίου στον υπολογιστή σας[edit | edit source]

Για να αντιγράψουμε το project απο το github στον δίσκο μας εκτελούμε:

git clone https://github.com/HackTheBook/myhackthebookproject

*αντικαταστήστε το myhackthebookproject με το όνομα του repository της ομάδας σας

Έτσι λοιπόν θα δημιουργηθεί ένας κατάλογος myhackthebookproject στον σκληρό σας.

Ο κατάλογος αυτός είναι ο κατάλογος στον οποίο θα εργάζεστε και θα βάζετε τα αρχεία για κοινή χρήση στο github

Βασικές εντολές που πρέπει να γνωρίζετε[edit | edit source]

1) git-add

Προσθέτει το περιεχόμενο του αρχείου και το ετοιμάζει για να γίνει το επόμενο commit. Είναι και η πρώτη εντολή που θα πληκτρολογήσετε

Χρήση εντολής

git add <filenames>

πχ git add readme.txt


2) git commit

Η εντολή git commit ξεκινά έναν editor ώστε να γράψετε ένα σύντομο κείμενο που να εξηγεί τι περιλαμβάνει το commit

– εναλλακτικά:

πληκτρολογήστε

git commit -­‐m “το μήνυμα σας (p.x add initial plan for myhackthebookproject)”

Τα κείμενα αυτά είναι σημαντικά

– πρέπει να μπορεi κανείς να καταλαβαίνει τι κάνατε (και γιατί)

– φανταστείτε ότι το γράφετε για κάποιον άλλο


3) git push

Με αυτή την εντολή ανεβάζετε οριστικά στο github τα αρχεία τα οποία κάνατε add και commit.


4) git-status

Περιγραφή: Εμφανίζει την κατάσταση του καταλόγου σας (ποια αρχεία ειναι ήdη στο Github ποια αρχεία εχουν αλλαξει και ποια εχουν είναι εντελώς καινούργια και πρεπει να γίνουν πρώτα πρώτα add.


5) git-diff

Περιγραφή: Εμφανίζει διαφορές στα commit που έχουν γίνει και στο github

Περισσότερες πληροφορίες[edit | edit source]

Μια γρήγορη αναφορά για τις βασικές εντολές στο github (pdf)

Αναλυτική βοήθεια για την χρήση του github https://help.github.com/

Προχωρημένες εντολές[edit | edit source]
Exploring the repository[edit | edit source]

git log

Εμφανίζει πληροφορίες για τα commit που έχουν γίνει.

git log --grep=<pattern> ή git log -S’<pattern>’

Θα φιλτράρει τα commits από το συγκεκριμένο patern.


git diff

Εμφανίζει διαφορές στα commit που έχουν γίνει και στο working tree με τα index

git diff [<path>]

αλλαγές σε σχέση με το INDEX.

git diff <commit> [<commit>] [<path>]

Αλλαγές μεταξύ δύο commit.

Εάν παραλείπεται, το δεύτερο εκτελεί την προεπιλογή HEAD.

git show <commit>

Θα εμφανίσει όλες τις αλλαγές που επήλθαν στο δεδομένο commit.

Εργασία με branches[edit | edit source]

git branch

Eμφανίζει σε λίστα τα branches που υπάρχουν.

git branch <branch_name>

Δημιουργε νέο branch αλλά δεν αλλάζει σε αυτό.

git checkout <branch_name>

Εναλλαγή μεταξύ branches.

git branch -d [head]

Διαγραφή κάποιου branch όταν πάψει να μας χρειάζεται.


Merging

Αφού αναπτύξουμε τα νέα features στα ξεχωριστά branches πρέπει κάπως να τα εισάγουμε στο

master branch:

git merge [head]

Τι κάνει το merge;

Εντοπίζει το κοινό πρόγονο (ancestor) του HEAD και του head που θα γίνει merge.

Αν ο πρόγονος == merge τότε δε κάνει τίποτα

Αν ο πρόγονος == HEAD τότε fast forward merge

Διαφορετικά εντοπίζει διαφορές μεταξύ πρόγονου και merge.

Δοκιμάζει να τα συγχωνεύσει σε ένα αρχείο.

Αν δεν υπάρχει σύγκρουση δημιουργεί νέο commit.

Αν υπάρχει σύγκρουση δείχνει που υπάρχει πρόβλημα και ενημερώνει το χρήστη.


Merging Branches

git merge <commit>

Ενώνει δύο η περισσότερα branches μαζί. Για παράδειγμα το master με κάποιο δεύτερο που δημιουργήσατε.

git merge --abort

Αναιρεί μια συγχώνευση σε εξέλιξη (πάντα κάνετε commit πριν από τη συγχώνευση).

git cherry-pick <commit>

Επιλέξτε μόνο μερικά commits για τη συγχώνευση.


Solving Conflicts[edit | edit source]

Όταν τα branches έχουν αλλάξει το ίδιο κομμάτι του κώδικα, προκύπτουν συγκρούσεις οι οποίες επιλύονται:

Χειροκίνητα ή χρησιμοποιώντας το εργαλείο mergetool:

git mergetool

Προσθέτωντας τα αρχεία στο INDEX.

Κάνοντας commit στα αρχεία τα οποία έχετε επιλύσει τις συγκρούσεις.


Sharing and update projects[edit | edit source]

git fetch <repo> [<ref>]

Φέρνουμε-κατεβάζουμε από το remote repository origin το branch master.

git pull

e.g.

git pull origin master

Φέρνουμε-κατεβάζουμε από το remote repository originτο branch master, και στη συνέχεια κάνουμε και merge.

e.g.

git pull origin master --rebase

Με το rebase ζητάμε από το git να τροποποιήσει το τοπικό μας αποθετήριο και να κάνει αυτά τα commit που δεν υπάρχουν

ακόμα στο δημόσιο αποθετήριο, να εμφανιστούν με τέτοιο τρόπο ώστε να περάσουν πρώτα στο ιστορικό (του τοπικού

αποθετηρίου) τα commit που υπήρχαν στο δημόσιο αποθετήριο, και τα commit του τοπικού να εμφανιστούν πιο πρόσφατα στο

ιστορικό.