Οδηγός ρύθμισης και χρήσης του Git και GitHub

...το μέρος για να ξεκινήσετε!

Συντονιστής: adem1

Κανόνες Δ. Συζήτησης
Παρακαλώ να επιλέξετε, με προσοχή, την άδεια που θέλετε να έχουν οι οδηγοί που συγγράφετε.
Πληροφορίες για τις άδειες μπορείτε να βρείτε εδώ.
Άμα επιθυμείτε κάποια άλλη άδεια επικοινωνήστε με κάποιο Διαχειριστή είτε Συντονιστή.

Σημαντικό είναι να χρησιμοποιήσετε την υπηρεσία http://imagebin.ubuntu-gr.org για τις εικόνες.

Οδηγός ρύθμισης και χρήσης του Git και GitHub

Δημοσίευσηαπό evolgen » 05 Ιούλ 2011, 16:29

Το Git είναι ένα distributed σύστημα ελέγχου εκδόσεων κώδικα και σου προσφέρει απίστευτες ευκολίες στη σύγκριση εκδόσεων προγραμμάτων που γράφεις μόνος ή σε συνεργασία με άλλους της ομάδας σου. Θα ήθελα να πω ένα τεράστιο ευχαριστώ στο μέλος simosx για το online μάθημα Git στο IRC, αποτέλεσμα του οποίου είναι αυτός ο οδηγός για το στήσιμο και τη χρήση του συστήματος Git. Είναι γραμμένος από έναν -σχεδόν- αδαή, οπότε παρακαλώ να με διορθώσετε ή να συμπληρώσετε όπου χρειάζεται. :)

Ξεκινώντας με την εγκατάσταση:
Ανοίγουμε ένα τερματικό (πατάμε 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"

Προφανώς βάζουμε το ονοματεπώνυμό μας και το δικό μας email.

Για δική μας διευκόλυνση, με την εντολή που ακολουθεί θα εμφανίζονται χρώματα όταν γράφουμε εντολές στο Git.
Κώδικας: Επιλογή όλων
git config --global color.ui auto

Οι παραπάνω ρυθμίσεις εφαρμόζονται μια φορά και διατηρούνται αποθηκευμένες για πάντα, στο σύστημα που βρίσκεστε τώρα. Μπορούμε να τις δούμε με
Κώδικας: Επιλογή όλων
git config -l




Ας φτιάξουμε τώρα ένα πρώτο αποθετήριο. Αρχικά, φτιάχνουμε ένα νέο κατάλογο και μπαίνουμε μέσα. π.χ
Κώδικας: Επιλογή όλων
mkdir project && cd project


Αρχικοποιούμε τον κατάλογο για να χρησιμοποιείται από το Git με τη μορφή αποθετηρίου:
Κώδικας: Επιλογή όλων
git init

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

Στη συνέχεια φτιάχνουμε το πρόγραμμα για το οποίο δημιουργήσαμε το αποθετήριο. Π.χ. το κλασικό helloworld πρόγραμμα σε Perl:
Κώδικας: Επιλογή όλων
#!/usr/bin/perl -w
print "Hello world!\n";

Το γράφουμε με τον editor της επιλογής μας (π.χ. geany, nano, gedit) και το αποθηκεύουμε στον κατάλογο project. Επειδή είναι γραμμένο σε Perl, όπως και στην Python, πρέπει πρώτα να το κάνουμε εκτελέσιμο με την εντολή:
Κώδικας: Επιλογή όλων
chmod 755 helloworld.pl


Για να δούμε την κατάσταση των αρχείων στο αποθετήριο πατάμε
Κώδικας: Επιλογή όλων
git status

Θα μας πει ότι υπάρχει ένα νέο αρχείο που δεν είναι γνωστό στο git:
Κώδικας: Επιλογή όλων
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   helloworld.pl
nothing added to commit but untracked files present (use "git add" to track)

Για να το προσθέσουμε στο αποθετήριο, γράφουμε
Κώδικας: Επιλογή όλων
git add helloworld.pl

Αν τώρα ξανατρέξουμε git status, θα μας πει:
Κώδικας: Επιλογή όλων
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#   new file:   helloworld.pl
#

Για να ολοκληρώσουμε την εισαγωγή του αρχείου στο Git, γράφουμε
Κώδικας: Επιλογή όλων
git commit -m "Σχόλιο" helloworld.pl

Προφανώς όπου "Σχόλιο" γράφουμε ένα σύντομο σχόλιο για το λόγο που κάνουμε αλλαγή στο αποθετήριο. Την ίδια ακριβώς εντολή θα γράφουμε κάθε φορά που θα κάνουμε αλλαγές στον κώδικα ή στο περιεχόμενο ενός αρχείου που ήδη είναι γνωστό στο Git. Το αποτέλεσμα της εντολής είναι το εξής:
Κώδικας: Επιλογή όλων
[master (root-commit) d1134ea] Σχόλιο
1 files changed, 2 insertions(+), 0 deletions(-)
create mode 100755 helloworld.pl

Εναλλακτικά, μπορούμε να γράψουμε την εντολή ως εξής:
Κώδικας: Επιλογή όλων
git commit -m "Σχόλιο" -a

Το "-a" αναφέρεται σε όλα τα αρχεία τα οποία "γνωρίζει" το git και έχουν τροποποιηθεί από το τελευταίο commit.

Αν τώρα κάνουμε κάποιες αλλαγές στον κώδικα του helloworld.pl, μπορούμε να δούμε μια σύγκριση με την εντολή
Κώδικας: Επιλογή όλων
git diff

Για να τις ενσωματώσουμε στο αποθετήριο ξαναγράφουμε git commit όπως παραπάνω.

Για να βλέπουμε τις εκδόσεις του προγράμματός μας με γραφικό περιβάλλον, μπορούμε να εγκαταστήσουμε το πρόγραμμα gitg
Κώδικας: Επιλογή όλων
sudo apt-get install gitg

και τρέχοντάς το θα αναγνωρίσει το αποθετήριο και θα μας δείξει λεπτομέρειες από τα commits που έχουμε κάνει.

Αν για οποιοδήποτε λόγο θέλουμε να επαναφέρουμε το αποθετήριο στην κατάσταση του τελευταίου commit, γράφουμε
Κώδικας: Επιλογή όλων
git reset --hard





Ρύθμιση του 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.com, πάμε στην αρχική του σελίδα και πατάμε στο Create a new repository.

Ακολουθούμε τις οδηγίες και πατάμε τις εντολές που μας εμφανίζει στο τερματικό, ενώ βρισκόμαστε στον κατάλογο του αποθετηρίου μας. Τώρα ο κώδικάς μας βρίσκεται στο αποθετήριο που δημιουργήσαμε στο GitHub.

Αν έχουμε προσθέσει κάποιον συνεργάτη (collaborator) στο GitHub για το αποθετήριο και έχει προβεί σε κάποιες αλλαγές, μπορούμε να ενημερώσουμε το αποθετήριο στον υπολογιστή μας με την εντολή
Κώδικας: Επιλογή όλων
git pull --rebase


Για να κατεβάσουμε κώδικα από το GitHub στον υπολογιστή μας, βρίσκουμε το αποθετήριο που μας ενδιαφέρει, παίρνουμε το URL για το Git Read-Only και γράφουμε
Κώδικας: Επιλογή όλων
git clone URL


Κάπου εδώ τελειώνει αυτή η σύντομη εισαγωγή στον τρόπο χρήσης του Git και του GitHub.com. Περιμένω προσθήκες για τις -σίγουρες- ελλείψεις του οδηγού και άλλες συμβουλές! :)

Τελευταία επεξεργασία από evolgen και 14 Ιουν 2012, 21:41, έχει επεξεργασθεί 1 φορά/ες συνολικά
Αιτία: Ενημέρωση οδηγού
Το να μειώνεις ένα έργο ελεύθερου λογισμικού, επειδή θεωρείς το δικό σου καλύτερο,
είναι απαράδεκτη συμπεριφορά και δε συμβαδίζει με τις αρχές του ελεύθερου λογισμικού.

Γνώσεις Linux: Μέτριο++ ┃ Προγραμματισμός: Perl, R, Python, SQL, C, Common Lisp, BashΑγγλικά: Άριστα

1. Ubuntu 14.04 trusty
2. Intel Core i7-3520M CPU @ 2.90GHz ‖ RAM 7892 MiB
3. Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
4. eth0: Broadcom NetXtreme BCM57765 Gigabit Ethernet PCIe [14e4:16b4] (rev 10) ⋮ eth1: Broadcom BCM4331 802.11a/b/g/n [14e4:4331] (rev 02)
Άβαταρ μέλους
evolgen
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1031
Εγγραφή: 28 Ιούλ 2010, 14:22
Τοποθεσία: UK
IRC: bioevolgenec
Εκτύπωση

Re: Οδηγός ρύθμισης και χρήσης του Git και GitHub

Δημοσίευσηαπό simosx » 05 Ιούλ 2011, 16:47

+1 :-)

Πολύ καλός οδηγός, και βοηθά ώστε να μάθουμε όλοι για τη χρήση DVCS όπως είναι το Git.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

Re: Οδηγός ρύθμισης και χρήσης του Git και GitHub

Δημοσίευσηαπό Qdata » 05 Ιούλ 2011, 18:29

Μπράβο για τον οδηγό @evolgen.Πολύ καλός! :thumbup:
Linux User: #530165
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Λειτουργικό ⇛ Ubuntu 11.04 32bit σε Intel(R) Atom(TM) CPU N270 @ 1.60GHz
(Notebook) Προδιαγραφές ⇛ 2x Intel(R) Atom(TM) CPU N270 @ 1.60GHz │ 1016MB │ HDA-Intel - HDA Intel -- USB-Audio - USB AUDIO│ 1024x600 pixels
Νέος στο Linux?Οδηγοί - How to - Tutorials
Qdata
powerTUX
powerTUX
 
Δημοσιεύσεις: 1875
Εγγραφή: 18 Ιουν 2010, 19:40
Τοποθεσία: Σέρρες
IRC: dimos
Εκτύπωση

Re: Οδηγός ρύθμισης και χρήσης του Git και GitHub

Δημοσίευσηαπό c7p » 05 Ιούλ 2011, 18:54

Μπράβο @evogen, @simosx. Αρκετά ενδιαφέρον και χρήσιμο το Git !
Άβαταρ μέλους
c7p
powerTUX
powerTUX
 
Δημοσιεύσεις: 1849
Εγγραφή: 30 Μάιος 2009, 16:09
Τοποθεσία: Κατερίνη
Εκτύπωση

Re: Οδηγός ρύθμισης και χρήσης του Git και GitHub

Δημοσίευσηαπό MaR1oC » 15 Ιούλ 2011, 15:34

να το βάλουμε και στο ubuntistas αν δεν έχει μπει ήδη ;)
τι λέτε;
"Γιατί όσα πρέπει να κάνουμε, αφού τα μάθουμε, τα μαθαίνουμε κάνοντάς τα" -Αριστοτέλης

Spoiler: show
Linux: Προχωρημένος| Προγραμματισμός :Java, Python, C, C++, BourneAgainSHell, Arduino Sketch, Scilab | Typesetting: LaTex, Scribus | Αγγλικά : C2 (ECPE)
Acer Aspire One > CPU: Intel Atom 1,6GHz | RAM: 2GB | GPU: Intel GMA 3650
Desktop > CPU: Intel 2Core Core Duo 2.13 Ghz | RAM: 4GB | GPU: NVdia GeForce 8600GT Audio Card Realtek ALC888
Acer Aspire V5(Ultrabook) > CPU: Intel Core i5 1.8GHz TB | RAM: 4GB | GPU: Intel Graphics

Github
Άβαταρ μέλους
MaR1oC
Ubuntistas
Ubuntistas
 
Δημοσιεύσεις: 375
Εγγραφή: 06 Σεπ 2010, 10:09
Τοποθεσία: /home/marios
IRC: MaR1oC
Εκτύπωση

Re: Οδηγός ρύθμισης και χρήσης του Git και GitHub

Δημοσίευσηαπό M.Jackson » 14 Ιουν 2012, 21:36

Ευχαριστώ. Δηλαδή κάθε φορά που κάνω αλλαγή σε κάποιο αρχείο κάνω git commit -m "Σχόλιο" helloworld.pl για να μπει στο "history" για να μπορώ να τα συγκρίνω;;;
Άβαταρ μέλους
M.Jackson
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1053
Εγγραφή: 28 Μάιος 2010, 19:06
Εκτύπωση

Re: Οδηγός ρύθμισης και χρήσης του Git και GitHub

Δημοσίευσηαπό evolgen » 14 Ιουν 2012, 21:39

M.Jackson έγραψε:Ευχαριστώ. Δηλαδή κάθε φορά που κάνω αλλαγή σε κάποιο αρχείο κάνω git commit -m "Σχόλιο" helloworld.pl για να μπει στο "history" για να μπορώ να τα συγκρίνω;;;

Έχω την εντύπωση πως ναι. Κάτι που έχω παραλείψει να γράψω είναι πως γενικά μπορούμε να χρησιμοποιήσουμε και την εντολή ως
Κώδικας: Επιλογή όλων
git commit -m "Σχόλιο" -a

όπου "-a" είναι όλα τα αρχεία τα οποία "γνωρίζει" το git και έχουν τροποποιηθεί από το τελευταίο commit. Εγώ αυτή την εντολή χρησιμοποιώ τώρα τελευταία και δεν είχα κανένα πρόβλημα.
Το να μειώνεις ένα έργο ελεύθερου λογισμικού, επειδή θεωρείς το δικό σου καλύτερο,
είναι απαράδεκτη συμπεριφορά και δε συμβαδίζει με τις αρχές του ελεύθερου λογισμικού.

Γνώσεις Linux: Μέτριο++ ┃ Προγραμματισμός: Perl, R, Python, SQL, C, Common Lisp, BashΑγγλικά: Άριστα

1. Ubuntu 14.04 trusty
2. Intel Core i7-3520M CPU @ 2.90GHz ‖ RAM 7892 MiB
3. Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
4. eth0: Broadcom NetXtreme BCM57765 Gigabit Ethernet PCIe [14e4:16b4] (rev 10) ⋮ eth1: Broadcom BCM4331 802.11a/b/g/n [14e4:4331] (rev 02)
Άβαταρ μέλους
evolgen
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1031
Εγγραφή: 28 Ιούλ 2010, 14:22
Τοποθεσία: UK
IRC: bioevolgenec
Εκτύπωση

Re: Οδηγός ρύθμισης και χρήσης του Git και GitHub

Δημοσίευσηαπό M.Jackson » 14 Ιουν 2012, 21:45

εννοείς ότι με την πιο πάνω εντολή ενημερώνονται όλα τα αρχεία που έχουν δεχτεί αλλαγή από το τελευταίο "update"/commit που κάναμε; το μονο προβλημα θα ειναι το comment αν το κανουμε ενα ενα θα μπορουμε να δωσουμε σε καθε αρχειο comment.

Επίσης πρέπει σε κάθε φάκελο να φτίαχνουμε νέο git? έστω ότι φτιάχνω μέσα στον φάκελο java ένα git, αλλα μέσα στο φάκελο java έχω υποφακέλους θα πρέπει να φτιάξω και για αυτούς git?
Άβαταρ μέλους
M.Jackson
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1053
Εγγραφή: 28 Μάιος 2010, 19:06
Εκτύπωση

Re: Οδηγός ρύθμισης και χρήσης του Git και GitHub

Δημοσίευσηαπό evolgen » 14 Ιουν 2012, 21:57

M.Jackson έγραψε:εννοείς ότι με την πιο πάνω εντολή ενημερώνονται όλα τα αρχεία που έχουν δεχτεί αλλαγή από το τελευταίο "update"/commit που κάναμε; το μονο προβλημα θα ειναι το comment αν το κανουμε ενα ενα θα μπορουμε να δωσουμε σε καθε αρχειο comment.

Γίνεται να δώσεις διαφορετικό comment σε κάθε αρχείο, κάνοντας διαφορετικά commits. Στην περίπτωση αυτή γράφεις ως εξής:
Κώδικας: Επιλογή όλων
git commit -m "Σχόλιο1" file1
git commit -m "Σχόλιο2" file2


M.Jackson έγραψε:Επίσης πρέπει σε κάθε φάκελο να φτίαχνουμε νέο git? έστω ότι φτιάχνω μέσα στον φάκελο java ένα git, αλλα μέσα στο φάκελο java έχω υποφακέλους θα πρέπει να φτιάξω και για αυτούς git?

Αρκεί να έχεις εκτελέσει το
Κώδικας: Επιλογή όλων
git init
στον "ριζικό" φάκελο. Δηλαδή αν έχεις φτιάξει git repo στον ~/project και έχεις προσθέσει το φάκελο ~/project/examples, τότε στο git status θα εμφανιστεί ο νέος κατάλογος και τα αρχεία που περιέχει.
Το να μειώνεις ένα έργο ελεύθερου λογισμικού, επειδή θεωρείς το δικό σου καλύτερο,
είναι απαράδεκτη συμπεριφορά και δε συμβαδίζει με τις αρχές του ελεύθερου λογισμικού.

Γνώσεις Linux: Μέτριο++ ┃ Προγραμματισμός: Perl, R, Python, SQL, C, Common Lisp, BashΑγγλικά: Άριστα

1. Ubuntu 14.04 trusty
2. Intel Core i7-3520M CPU @ 2.90GHz ‖ RAM 7892 MiB
3. Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
4. eth0: Broadcom NetXtreme BCM57765 Gigabit Ethernet PCIe [14e4:16b4] (rev 10) ⋮ eth1: Broadcom BCM4331 802.11a/b/g/n [14e4:4331] (rev 02)
Άβαταρ μέλους
evolgen
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1031
Εγγραφή: 28 Ιούλ 2010, 14:22
Τοποθεσία: UK
IRC: bioevolgenec
Εκτύπωση

Re: Οδηγός ρύθμισης και χρήσης του Git και GitHub

Δημοσίευσηαπό simosx » 15 Ιουν 2012, 01:28

Με
Κώδικας: Επιλογή όλων
git init

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

Ό,τι κάνεις commit, γράφεται μέσα στον κρυφό υποκατάλογο .git.
Αν έχεις κάνει commit όλα τα αρχεία σου, τότε μπορείς να τα σβήσεις (έχει αφήσει ανέπαφο το .git όμως!) και μετά με
Κώδικας: Επιλογή όλων
git reset --hard

τα αρχεία επαναφέρονται.

Δες και τις οδηγίες που έγραψα για τους μεταφραστοές στο http://live.gnome.org/TranslationProject/GitHowTo
όπου έχει ενδιαφέρουσες πληροφορίες για αποθετήρια και εντολές.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

Επόμενο

  • ΣΧΕΤΙΚΑ ΘΕΜΑΤΑ
    ΑΠΑΝΤΗΣΕΙΣ
    ΠΡΟΒΟΛΕΣ
    ΣΥΓΓΡΑΦΕΑΣ

Επιστροφή στο Οδηγοί - How to - Tutorials

cron