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

Φωτογραφία από τον Markus Spiske στο Unsplash

Το Git είναι ένα Σύστημα Ελέγχου Έκδοσης με Κατανεμημένη Έκδοση Open Source. Τώρα είναι πολλά λόγια για τον ορισμό του Git.

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

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

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

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

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

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

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

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

Κατεβάστε git

Αυτός ο σύνδεσμος περιέχει λεπτομέρειες σχετικά με τον τρόπο εγκατάστασης του Git σε πολλά λειτουργικά συστήματα:
https://git-scm.com/book/en/v2/Getting-Started-Installing-Git

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

git --version

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

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

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

cd απλή-git-demo
git init

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

Ας προσθέσουμε λίγο μικρό κώδικα τώρα

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

Αρχικό περιεχόμενο

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

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

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

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

Σκαλωσιά

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

git προσθέστε demo.txt

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

git προσθέστε αρχείο1 αρχείο2 αρχείο3

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

git add.

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

Δέσμευση

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

git commit -m "Αρχική δέσμευση"

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

Git Status και Git Log

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

Αρχικό περιεχόμενο
Προσθήκη περισσότερου περιεχομένου

Κατάσταση

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

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

git status

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

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

git προσθέστε demo.txt
git commit -m "Το αρχείο demo.txt τροποποιείται"

Κούτσουρο

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

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

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

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

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

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

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

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

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

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

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

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

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

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

git branch test

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

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

git checkout test

Τώρα είμαστε στον κλάδο της δοκιμής.

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

git branch

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

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

Αρχικό περιεχόμενο
Προσθήκη περισσότερου περιεχομένου
Προσθήκη κάποιου περιεχομένου από το Τμήμα δοκιμών

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

git προσθέστε demo.txt
git commit -m "Δοκιμή Υποκαταστήματος Δοκιμής"

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

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

git log

Συγχώνευση

Επί του παρόντος, το Test Branch βρίσκεται μπροστά από το Master με 1 δέσμευση. Ας υποθέσουμε ότι τώρα θέλουμε όλοι οι κώδικες στο Δοκιμαστικό Κατάστημα να επιστραφούν στο Master Branch. Αυτό είναι όπου η συγχώνευση git είναι πολύ χρήσιμη.

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

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

git master checkout

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

δοκιμή συγχώνευσης git

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

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

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

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

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

Εμφάνιση απομακρυσμένων και τοπικών αποθετηρίων

GitHub

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

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

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

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

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

Η διεύθυνση URL αποθετηρίου είναι η επισημασμένη μερίδα https://github.com/aditya-sridhar/git-blog-demo.git

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

git απομακρυσμένη προσθήκη προέλευσης [url αποθετηρίου]

Git Push

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

git push -u master master

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

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

Git Τραβήξτε

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

git pull master master

Git Clone

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

git clone [url αποθετηρίου]

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

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

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

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

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

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

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

Η ιστοσελίδα μου: https://adityasridhar.com/

Άλλα μηνύματα από εμένα

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