Μια εισαγωγή στο Git: τι είναι και πώς να το χρησιμοποιήσετε

Το Git είναι ένα σύστημα ελέγχου διανομής έκδοσης ανοιχτού κώδικα . Τώρα είναι πολλές λέξεις για τον ορισμό του Git.

Επιτρέψτε μου να το αναλύσω και να εξηγήσω τη διατύπωση:

  • Σύστημα ελέγχου: Αυτό βασικά σημαίνει ότι το Git είναι ένας ανιχνευτής περιεχομένου. Έτσι το Git μπορεί να χρησιμοποιηθεί για την αποθήκευση περιεχομένου - χρησιμοποιείται κυρίως για την αποθήκευση κώδικα λόγω των άλλων δυνατοτήτων που παρέχει.
  • Σύστημα ελέγχου έκδοσης : Ο κωδικός που αποθηκεύεται στο Git αλλάζει καθώς προστίθεται περισσότερος κώδικας. Επίσης, πολλοί προγραμματιστές μπορούν να προσθέσουν κώδικα παράλληλα. Έτσι, το Σύστημα Ελέγχου Έκδοσης βοηθά στην αντιμετώπιση αυτού, διατηρώντας ένα ιστορικό των αλλαγών που έχουν συμβεί. Επίσης, το Git παρέχει δυνατότητες όπως κλάδους και συγχωνεύσεις, τις οποίες θα καλύψω αργότερα.
  • Κατανεμημένο σύστημα ελέγχου έκδοσης : Το Git διαθέτει απομακρυσμένο αποθετήριο που είναι αποθηκευμένο σε διακομιστή και τοπικό αποθετήριο που είναι αποθηκευμένο στον υπολογιστή κάθε προγραμματιστή. Αυτό σημαίνει ότι ο κωδικός δεν αποθηκεύεται μόνο σε έναν κεντρικό διακομιστή, αλλά το πλήρες αντίγραφο του κώδικα υπάρχει σε όλους τους υπολογιστές των προγραμματιστών. Το Git είναι ένα σύστημα ελέγχου κατανεμημένης έκδοσης, καθώς ο κώδικας υπάρχει στον υπολογιστή κάθε προγραμματιστή. Θα εξηγήσω την έννοια των απομακρυσμένων και τοπικών αποθετηρίων αργότερα σε αυτό το άρθρο.

Γιατί απαιτείται ένα Σύστημα Ελέγχου Έκδοσης όπως το Git

Τα έργα πραγματικής ζωής έχουν γενικά πολλαπλούς προγραμματιστές που εργάζονται παράλληλα. Επομένως, απαιτείται ένα σύστημα ελέγχου εκδόσεων όπως το Git για να διασφαλιστεί ότι δεν υπάρχουν διενέξεις κώδικα μεταξύ των προγραμματιστών.

Επιπλέον, οι απαιτήσεις σε τέτοια έργα αλλάζουν συχνά. Έτσι, ένα σύστημα ελέγχου εκδόσεων επιτρέπει στους προγραμματιστές να επιστρέψουν και να επιστρέψουν σε μια παλαιότερη έκδοση του κώδικα.

Τέλος, μερικές φορές πολλά έργα που εκτελούνται παράλληλα περιλαμβάνουν την ίδια βάση κώδικα. Σε μια τέτοια περίπτωση, η έννοια της διακλάδωσης στο Git είναι πολύ σημαντική.

Ας ξεκινήσουμε να χρησιμοποιούμε το Git τώρα

Αντί να αναφέρω όλες τις έννοιες ταυτόχρονα, θα εξηγήσω τις έννοιες του Git μέσω ενός παραδείγματος, ώστε να είναι πιο εύκολο να ακολουθηθεί.

Λήψη git

Αυτός ο σύνδεσμος έχει λεπτομέρειες σχετικά με τον τρόπο εγκατάστασης του Git σε πολλά λειτουργικά συστήματα:

//git-scm.com/book/en/v2/Getting-Started-Installing-Git

Επαληθεύστε εάν το Git είναι εγκατεστημένο χρησιμοποιώντας την ακόλουθη εντολή στη γραμμή εντολών:

git --version

Δημιουργήστε το τοπικό σας αποθετήριο Git

Στον υπολογιστή σας, δημιουργήστε ένα φάκελο για το έργο σας. Ας καλέσουμε το φάκελο έργου simple-git-demo.

Μεταβείτε στο φάκελο του έργου σας και προσθέστε ένα τοπικό αποθετήριο Git στο έργο χρησιμοποιώντας τις ακόλουθες εντολές:

cd simple-git-demo git init

Η git initεντολή προσθέτει ένα τοπικό αποθετήριο Git στο έργο.

Ας προσθέσουμε έναν μικρό κωδικό τώρα

Δημιουργήστε ένα αρχείο που ονομάζεται demo.txtστο φάκελο έργου και προσθέστε το ακόλουθο κείμενο σε αυτόν:

Initial Content

Εδώ θα κάνουμε επίδειξη με απλό κείμενο αντί για πραγματικό κώδικα, καθώς η κύρια εστίαση αυτού του άρθρου είναι στο Git και όχι σε συγκεκριμένη γλώσσα προγραμματισμού.

Στάδιο και δέσμευση του κώδικα

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

Οποιοδήποτε αρχείο δεν προστίθεται στην περιοχή σταδιοποίησης δεν θα δεσμευτεί. Αυτό δίνει στον προγραμματιστή τον έλεγχο των αρχείων που πρέπει να δεσμευτούν.

Σκαλωσιά

Χρησιμοποιήστε την ακόλουθη εντολή για τη σταδιοποίηση του αρχείου:

git add demo.txt

Σε περίπτωση που θέλετε να προσθέσετε πολλά αρχεία μπορείτε να χρησιμοποιήσετε:

git add file1 file2 file3

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

git add .

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

Δέσμευση

Χρησιμοποιήστε την ακόλουθη εντολή για να εκτελέσετε το αρχείο:

git commit -m "Initial Commit"

Το "Initial Commit" είναι το μήνυμα δέσμευσης εδώ. Εισαγάγετε ένα σχετικό μήνυμα δέσμευσης για να υποδείξετε ποιες αλλαγές κώδικα έγιναν στη συγκεκριμένη δέσμευση.

Κατάσταση Git και καταγραφή Git

Τώρα τροποποιήστε το demo.txtαρχείο και προσθέστε το ακόλουθο απόσπασμα:

Initial Content Adding more Content

Κατάσταση

Χρησιμοποιήστε το git statusγια να μάθετε πληροφορίες σχετικά με τα αρχεία που έχουν τροποποιηθεί και ποια αρχεία υπάρχουν στην περιοχή σταδιοποίησης - δείχνει και άλλες πληροφορίες, τις οποίες μπορούμε να αγνοήσουμε για τώρα.

Χρησιμοποιήστε την ακόλουθη εντολή για να δείτε την κατάσταση:

git status

Η κατάσταση δείχνει ότι demo.txtέχει τροποποιηθεί και δεν βρίσκεται ακόμη στην περιοχή στάσης.

Τώρα ας προσθέσουμε demo.txtστην περιοχή σταδιοποίησης και να τη δεσμεύσουμε χρησιμοποιώντας τις ακόλουθες εντολές:

git add demo.txt git commit -m "demo.txt file is modified"

Κούτσουρο

Χρησιμοποιήστε το git logγια να εκτυπώσετε όλες τις δεσμεύσεις που έχουν γίνει μέχρι τώρα.

Η εντολή που χρησιμοποιείται για αυτό είναι:

git log

Το αρχείο καταγραφής εμφανίζει τον συντάκτη κάθε δέσμευσης, την ημερομηνία της δέσμευσης και το μήνυμα δέσμευσης.

Κλαδια δεντρου

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

Τι είναι ένα υποκατάστημα;

Ένας κλάδος δεν είναι παρά ένας δείκτης της τελευταίας δέσμευσης στο αποθετήριο Git. Τώρα, ο κύριος κλάδος μας είναι δείκτης της δεύτερης δέσμευσης “demo.txt file is modified”.

Γιατί χρειάζονται πολλά υποκαταστήματα;

Απαιτούνται πολλαπλοί κλάδοι για την υποστήριξη πολλαπλών παράλληλων εξελίξεων. Ανατρέξτε στην παρακάτω εικόνα για να δείτε πώς λειτουργούν τα κλαδιά.

Αρχικά, οι δεσμεύσεις 1 και δέσμευση 2 έγιναν στον κύριο κλάδο. Μετά τη δέσμευση 2, δημιουργείται ένας νέος κλάδος που ονομάζεται "Δοκιμή" και προστίθενται οι δεσμεύσεις 3 και δεσμεύστε 4 στον κλάδο δοκιμών

Ταυτόχρονα, μια διαφορετική δέσμευση 3 και δέσμευση 4 προστίθενται στον κύριο κλάδο. Εδώ μπορούμε να δούμε ότι μετά την Commit 2, δύο παράλληλες εξελίξεις γίνονται σε 2 ξεχωριστούς κλάδους.

Το Test Branch και το Master Branch έχουν αποκλίνει εδώ και έχουν διαφορετικό κωδικό - ο κωδικός από το Test Branch μπορεί να συγχωνευθεί με το Master Branch χρησιμοποιώντας git merge. Αυτό θα καλυφθεί αργότερα.

Δημιουργήστε ένα νέο υποκατάστημα στο Τοπικό

Δημιουργήστε έναν νέο κλάδο που ονομάζεται δοκιμή χρησιμοποιώντας την ακόλουθη εντολή:

git branch test

Αυτή η εντολή δημιουργεί τον testκλάδο.

Βρισκόμαστε ακόμα στο πλαίσιο του κύριου κλάδου. Για να μεταβείτε στον test κλάδο. χρησιμοποιήστε την ακόλουθη εντολή:

git checkout test

Τώρα είμαστε στο testυποκατάστημα.

Μπορείτε να απαριθμήσετε όλους τους κλάδους στην τοπική χρησιμοποιώντας την ακόλουθη εντολή:

git branch

Κάνετε ορισμένες δεσμεύσεις στο νέο υποκατάστημα

Τροποποιήστε demo.txtπροσθέτοντας το ακόλουθο απόσπασμα:

Initial Content Adding more Content Adding some Content from test Branch

Τώρα στάδιο και δεσμεύστε χρησιμοποιώντας τις ακόλουθες εντολές:

git add demo.txt git commit -m "Test Branch Commit"

Αυτή η δέσμευση έγινε στο Test Branch, και τώρα το Test Branch είναι μπροστά από το Master Branch με 1 commit - καθώς το δοκιμαστικό κλάδο περιλαμβάνει επίσης τα 2 commits από τον κύριο κλάδο.

Μπορείτε να επαληθεύσετε το ιστορικό δεσμεύσεων στο Test Branch χρησιμοποιώντας:

git log

Συγχώνευση

Προς το παρόν, το Test Branch είναι μπροστά από το Master με 1 δέσμευση. Ας πούμε ότι τώρα θέλουμε να επιστρέψει όλος ο κωδικός στο Test Branch στο Master Branch. Αυτό είναι που git mergeείναι πολύ χρήσιμο.

Για να συγχωνεύσετε τον κωδικό από τον κλάδο δοκιμής στον κύριο κλάδο, ακολουθήστε τα εξής βήματα:

Πρώτα επιστρέψτε στον κύριο κλάδο:

git checkout master

Στη συνέχεια, εκτελέστε την mergeεντολή:

git merge test

Μετά την εκτέλεση αυτών των 2 εντολών, η συγχώνευση θα πρέπει να είναι επιτυχής. Σε αυτό το παράδειγμα, δεν υπάρχουν διενέξεις.

Αλλά σε πραγματικά έργα, θα υπάρξουν συγκρούσεις όταν γίνεται συγχώνευση. Η επίλυση της διένεξης είναι κάτι που έρχεται με εμπειρία, οπότε καθώς εργάζεστε περισσότερο με το Git θα είστε σε θέση να επιτύχετε την επίλυση των συγκρούσεων.

Τρέξιμο git logτώρα και θα παρατηρήσετε ότι ο πλοίαρχος έχει επίσης 3 δεσμεύσεις.

Το απομακρυσμένο αποθετήριο Git

Μέχρι τώρα, εργαζόμαστε μόνο στο τοπικό αποθετήριο. Κάθε προγραμματιστής θα εργαστεί στο τοπικό αποθετήριό του, αλλά τελικά, θα ωθήσει τον κώδικα σε απομακρυσμένο αποθετήριο. Μόλις ο κώδικας βρίσκεται στο απομακρυσμένο αποθετήριο, άλλοι προγραμματιστές μπορούν να δουν και να τροποποιήσουν αυτόν τον κώδικα.

GitHub

Εδώ θα χρησιμοποιήσουμε το GitHub για το απομακρυσμένο αποθετήριο.

Μεταβείτε στη διεύθυνση //github.com/ και δημιουργήστε έναν λογαριασμό.

Αφού εγγραφείτε στην αρχική σελίδα του GitHub, κάντε κλικ στο Έναρξη έργου για να δημιουργήσετε ένα νέο αποθετήριο Git. Δώστε ένα όνομα στο αποθετήριο και κάντε κλικ στο "Δημιουργία αποθετηρίου"

Δώστε το όνομα ως git-blog-demo.

Αυτό θα δημιουργήσει ένα απομακρυσμένο αποθετήριο στο GitHub και όταν ανοίγετε το αποθετήριο, θα ανοίξει μια σελίδα όπως η παρακάτω εικόνα:

Το URL αποθετηρίου είναι το επισημασμένο τμήμα //github.com/aditya-sridhar/git-blog-demo.git

Για να τοποθετήσετε το τοπικό αποθετήριο στο απομακρυσμένο αποθετήριο, χρησιμοποιήστε την ακόλουθη εντολή:

git remote add origin [repository url]

Git Push

Για να μετακινήσετε όλο τον κώδικα από το τοπικό αποθετήριο στο απομακρυσμένο αποθετήριο, χρησιμοποιήστε την ακόλουθη εντολή:

git push -u origin master

Αυτό ωθεί τον κώδικα από τον κύριο κλάδο στο τοπικό αποθετήριο στο κύριο κλάδο στο απομακρυσμένο αποθετήριο.

Πρόσθετες εντολές

Git Pull

git pullχρησιμοποιείται για να μεταφέρει τις τελευταίες αλλαγές από το απομακρυσμένο αποθετήριο στο τοπικό αποθετήριο Ο απομακρυσμένος κώδικας αποθετηρίου ενημερώνεται συνεχώς από διάφορους προγραμματιστές, επομένως git pull είναι απαραίτητος:

git pull origin master

Git Clone

git cloneχρησιμοποιείται για την κλωνοποίηση ενός υπάρχοντος απομακρυσμένου αποθετηρίου στον υπολογιστή σας. Η εντολή για αυτό είναι:

git clone [repository url]

συγχαρητήρια

Τώρα γνωρίζετε τα βασικά για το πώς να χρησιμοποιήσετε το Git, οπότε προχωρήστε και εξερευνήστε περισσότερα!

Σύντομα θα δημοσιεύσω ένα ακόμη άρθρο σχετικά με ελαφρώς πιο προηγμένες έννοιες του Git. Μείνετε συντονισμένοι!

Σχετικά με τον Συγγραφέα

Λατρεύω την τεχνολογία και παρακολουθώ τις εξελίξεις στην τεχνολογία. Μου αρέσει επίσης να βοηθάω άλλους με οποιαδήποτε γνώση έχω στον τεχνολογικό χώρο.

Μη διστάσετε να συνδεθείτε μαζί μου στον λογαριασμό μου στο LinkdIn //www.linkedin.com/in/aditya1811/

Μπορείτε επίσης να με ακολουθήσετε στο twitter //twitter.com/adityasridhar18

Ο ιστότοπός μου: //adityasridhar.com/

Άλλες δημοσιεύσεις από εμένα

Πώς να χρησιμοποιείτε αποτελεσματικά το Git