Γεια σε όλους 🙂 Πριν συνεχίσω με τα κείμενα της λίστας παραγγελιών, θέλω να γιορτάσω την κυκλοφορία του git 2.16 ευχαριστώντας καθέναν από αυτούς που έστειλαν μια ενημέρωση κώδικα και κάθε έναν από τους χρήστες, συνολικά είχαμε 4000 γραμμές μεταξύ ενημερώσεων και διορθώσεων , που δεν μιλά πολύ για την πρώτη μου έκδοση, αλλά μιλάει για την καλοσύνη σας your Ευχαριστώ! Τώρα, θα σας πω λίγο μυστικό, μέχρι τώρα δεν έχει περάσει μια στιγμή που δεν κάθομαι να γράψω ένα άρθρο και να το σκεφτώ πολύ, συνήθως απλά γράφω στη σειρά και στη συνέχεια η καλή σαύρα παίρνει την καλοσύνη του διορθώστε τα λάθη δακτυλογράφησης 🙂 οπότε ευχαριστώ και αυτόν.
Αυτό δεν είναι το καλύτερο όταν μιλάμε για τη σύνταξη άρθρων, υποτίθεται ότι πρέπει να έχει έναν στόχο και να χτίσει μια δομή, και να επισημάνει μικρά σημεία και κριτικές κ.λπ. κλπ ... Τώρα, αυτό δεν ισχύει μόνο για τα ιστολόγια γενικά, αλλά είναι απαραίτητο σε ένα λογισμικό που προσποιείται ότι είναι καλό 🙂 Για αυτήν την εργασία και μετά από κάποια προβλήματα με το λογισμικό ελέγχου έκδοσης που χρησιμοποιήθηκε στην ανάπτυξη του πυρήνα πριν από μερικά χρόνια, γεννήθηκε git
????
Πού να μάθετε git
?
Η ποσότητα της τεκμηρίωσης γύρω από το git είναι εκπληκτική, ακόμα κι αν πήραμε μόνο τις σελίδες που συνοδεύουν την εγκατάσταση, θα έχουμε τεράστια ανάγνωση. Βρίσκω προσωπικά το git βιβλίο αρκετά καλά σχεδιασμένο, ακόμη και έχω μεταφράσει μερικά από τα τμήματα της ενότητας 7, μου λείπουν ακόμα μερικά, αλλά δώστε μου χρόνο 😛 ίσως αυτόν τον μήνα μπορώ να μεταφράσω ό, τι απομένει από αυτήν την ενότητα.
Τι κάνει το git;
Το Git έχει σχεδιαστεί για να είναι γρήγορο, αποδοτικό, απλό και να υποστηρίζει μεγάλο όγκο πληροφοριών, τελικά, η κοινότητα του πυρήνα το δημιούργησε για το λογισμικό τους, το οποίο είναι ένα από τα μεγαλύτερα κοινά έργα ελεύθερου λογισμικού στον κόσμο και έχει εκατοντάδες συνεισφορών ανά ώρα σε μια βάση κώδικα που υπερβαίνει το ένα εκατομμύριο γραμμές.
Το ενδιαφέρον για το git είναι ο τρόπος διατήρησης των εκδόσεων δεδομένων. Παλαιότερα (άλλα προγράμματα ελέγχου εκδόσεων) πήραν συμπιέσεις όλων των υπαρχόντων αρχείων σε ένα σημείο της ιστορίας, όπως η δημιουργία ενός στο Cloud. Το Git ακολουθεί μια διαφορετική προσέγγιση, όταν εκτελεί ένα commit
επισημαίνεται ένα σημείο στην ιστορία, αυτό το σημείο στην ιστορία έχει μια σειρά τροποποιήσεων και λειτουργεί, στο τέλος της ημέρας, όλες οι τροποποιήσεις συγκεντρώνονται με την πάροδο του χρόνου και τα αρχεία λαμβάνονται για να είναι σε θέση να συμπιέσουν ή να επισημάνουν ως ορόσημα του εκδόσεις. Αφού το ξέρω ότι όλα αυτά ακούγονται περίπλοκα, θα σας ταξιδέψω σε ένα μαγικό ταξίδι σε ένα εξαιρετικά βασικό παράδειγμα.
Μικρό πρόγραμμα υπολογιστικής
Η υπολογισματική θα είναι ένα πρόγραμμα που θα βρει τα τετράγωνα ενός δεδομένου αριθμού, θα το κάνουμε σε C και θα είναι όσο το δυνατόν πιο απλό, οπότε μην περιμένετε πολλούς ελέγχους ασφαλείας από εμένα. Πρώτα πρόκειται να δημιουργήσουμε ένα αποθετήριο, θα το κάνω με το Github για να σκοτώσω δύο πουλιά με μία πέτρα:
Έχουμε προσθέσει μερικά απλά πράγματα όπως η άδεια (πολύ σημαντικό αν θέλετε να προστατεύσετε την εργασία σας, στην περίπτωσή μου, τους αναγκάστε να μοιραστούν τα αποτελέσματα εάν θέλουν να το χρησιμοποιήσουν ως βάση: P)
Τώρα ας πάμε στο αγαπημένο μας τερματικό, git clone
είναι η εντολή που είναι υπεύθυνη για τη λήψη του αποθετηρίου που βρίσκεται στο url
εκχωρήθηκε και δημιουργήστε ένα τοπικό αντίγραφο στον υπολογιστή μας.
Τώρα ας το ελέγξουμε git log
τι έχει συμβεί στην ιστορία του έργου μας:
Εδώ έχουμε πολλές πληροφορίες σε διαφορετικά χρώματα 🙂 ας προσπαθήσουμε να το εξηγήσουμε:
η πρώτη κίτρινη γραμμή είναι ο "γραμμικός κώδικας δέσμευσης" κάθε δέσμευση έχει το δικό της μοναδικό αναγνωριστικό, με το οποίο μπορείτε να κάνετε πολλά πράγματα, αλλά θα το αποθηκεύσουμε για αργότερα. Τώρα έχουμε HEAD
του celeste και master
πράσινος. Αυτοί είναι "δείκτες", η λειτουργία τους είναι να δείξει την τρέχουσα τοποθεσία της ιστορίας μας (HEAD
) και τον κλάδο στον οποίο εργαζόμαστε στον υπολογιστή μας (master
).
origin/master
είναι το αντίστοιχο του Διαδικτύου, origin
είναι το προεπιλεγμένο όνομα που έχει εκχωρηθεί στο δικό μας URL
, Και master
είναι ο κλάδος στον οποίο εργάζεστε ... για να το κρατήσετε απλό, όσοι έχουν /
είναι αυτές που δεν ανήκουν στην ομάδα μας, αλλά είναι αναφορές σε αυτό που υπάρχει στο Διαδίκτυο.
Έπειτα έχουμε τον συγγραφέα, την ημερομηνία και την ώρα και τη σύνοψη δεσμεύσεων. Αυτή είναι μια μικρή επισκόπηση του τι συνέβη εκείνο το σημείο της ιστορίας, πολύ σημαντικό σε πολλά έργα και υπάρχουν πολλές καταδικαστικές πληροφορίες. Ας ρίξουμε μια πιο προσεκτική ματιά σε αυτό που συνέβη στη δέσμευση με την εντολή git show <código-de-commit>
Η εντολή git show μας οδηγεί σε αυτήν την οθόνη σε μορφή ενημέρωσης κώδικα, όπου μπορείτε να δείτε τι έχει προστεθεί και τι έχει αφαιρεθεί (αν κάτι είχε αφαιρεθεί) εκείνη τη στιγμή στην ιστορία, μέχρι στιγμής μας δείχνει μόνο ότι εγγραφές .gitignore
,README.md
y LICENSE
.
Τώρα ας πάμε στην επιχείρηση, ας γράψουμε ένα αρχείο 🙂 θα δημιουργήσουμε το πρώτο ορόσημο στην ιστορία μας 😀:
Εν συντομία, πρόκειται να δημιουργήσουμε ένα πρόγραμμα που θα μας δείχνει τον αριθμό των ορισμάτων που θα περάσουν κατά την εκτέλεση του, απλό 🙂
Αυτό ήταν εύκολο 🙂 τώρα ας δούμε την ακόλουθη χρήσιμη εντολή: git status
Κάποια ευγενική ψυχή έχει μεταφράσει git για να την διευκολύνει να ακολουθήσει, εδώ έχουμε πολλές χρήσιμες πληροφορίες, γνωρίζουμε ότι βρισκόμαστε στον κύριο κλάδο, με τον οποίο έχουμε ενημερωθεί με origin/master
(ο κλάδος Github), έχουμε αρχεία χωρίς παρακολούθηση! και ότι για να τα προσθέσουμε πρέπει να χρησιμοποιήσουμε git add
, ας δοκιμάσουμε 🙂
Τώρα έχουμε έναν νέο πράσινο χώρο, στον οποίο εμφανίζεται το αρχείο που έχουμε προσθέσει στην περιοχή εργασίας. Σε αυτό το μέρος μπορούμε να ομαδοποιήσουμε τις αλλαγές μας για να μπορέσουμε να κάνουμε μια δέσμευση, η δέσμευση αποτελείται από ένα ορόσημο σε όλη την ιστορία του έργου μας, πρόκειται να δημιουργήσουμε τη δέσμευση 🙂 git commit
Εν συντομία, η κίτρινη γραμμή είναι ο τίτλος της δέσμευσής μας, γράφω main.c για μια απλή οπτική αναφορά. Το μαύρο κείμενο είναι η εξήγηση των αλλαγών που έγιναν από την προηγούμενη δέσμευση έως τώρα 🙂 αποθηκεύουμε το αρχείο και θα δούμε τη δέσμευσή μας να είναι αποθηκευμένη στο μητρώο.
Τώρα θα δούμε την ιστορία του έργου μας git log
Και πάλι στο αρχείο καταγραφής, τώρα μπορούμε να δούμε ότι οι πράσινες και οι κόκκινες γραμμές διέφεραν, διότι στον υπολογιστή μας, είμαστε μια δέσμευση πάνω από αυτές που είναι αποθηκευμένες στο Διαδίκτυο 🙂 πρόκειται να συνεχίσουμε τη δουλειά, ας υποθέσουμε ότι τώρα θέλω να δείξω ένα μήνυμα σε περίπτωση που ο χρήστης βάλει περισσότερα από ένα επιχειρήματα στο πρόγραμμα (κάτι που θα έκανε την αριθμομηχανή να μπερδευτεί 🙂)
Όπως μπορούμε να δούμε, το πρόγραμμά μας έχει αναπτυχθεί πολύ 😀, τώρα έχουμε τη λειτουργία imprimir_ayuda()
το οποίο εμφανίζει ένα μήνυμα σχετικά με τον τρόπο χρήσης υπολογισμών και στο μπλοκ main()
τώρα κάνουμε μια κριτική με if
(Κάτι που θα δούμε σε ένα πρόγραμμα εκμάθησης προγραμματισμού κάποια άλλη στιγμή, προς το παρόν είναι μόνο απαραίτητο να γνωρίζουμε ότι εάν έχουν εισαχθεί περισσότερα από 2 ορίσματα στην υπολογισματική, ότι το πρόγραμμα τελειώνει και εμφανίζεται η βοήθεια. Ας το εκτελέσουμε:
Όπως μπορείτε να δείτε, τώρα εκτυπώνει τον αριθμό που έχει παραδοθεί αντί για τον αριθμό των επιχειρημάτων, αλλά ότι δεν σας είπα προηγουμένως 🙂 για τους περίεργους echo $?
δείχνει τον κωδικό εξόδου του τελευταίου προγράμματος που εκτελέστηκε, δηλαδή 1
επειδή έχει λήξει κατά λάθος. Τώρα ας δούμε πώς πηγαίνει η ιστορία μας:
Τώρα ξέρουμε ότι είμαστε 1 δεσμευμένοι μπροστά από το Github, ότι το αρχείο main.c
έχει τροποποιηθεί, ας δημιουργήσουμε την επόμενη δέσμευση κάνοντας git add main.c
και στη συνέχεια git commit
????
Τώρα είμαστε λίγο πιο συγκεκριμένοι, αφού έχουμε εφαρμόσει μια συνάρτηση και αλλάξαμε τον κωδικό επικύρωσης. Τώρα που έχει αποθηκευτεί, θα εξετάσουμε την τελευταία μας αλλαγή. Μπορούμε να το δούμε με git show HEAD
Τώρα μπορείτε να δείτε τις κόκκινες και πράσινες γραμμές, προσθέσαμε τη βιβλιοθήκη stdlib.h
, τροποποίησε μεγάλο μέρος του κώδικα και πρόσθεσε τη λειτουργία στην ιστορία μας.
Τώρα θα δούμε το αρχείο καταγραφής: (git log
)
Μπορούμε να δούμε ότι είμαστε δύο δεσμεύσεις μπροστά από την έκδοση Github, πρόκειται να εξισώσουμε λίγο τον δείκτη 🙂 για αυτό που χρησιμοποιούμε git push origin master
Με αυτό λέμε, στείλτε τις δεσμεύσεις μου στο url origin
στο κλαδί master
Συγχαρητήρια! Τώρα οι αλλαγές σας είναι στο Github, δεν με πιστεύετε; ας το αναθεωρήσουμε 😉
Τώρα έχουμε τις 3 δεσμεύσεις για το Github 🙂
περίληψη
Έχουμε αγγίξει τις πιο βασικές πτυχές του git
, τώρα μπορούν να δημιουργήσουν μια απλή ροή εργασίας στα έργα τους, δεν είναι σχεδόν τίποτα από όλη τη μεγάλη ποικιλία πραγμάτων που μπορούν να γίνουν με το git, αλλά είναι σίγουρα το πιο πρακτικό και καθημερινό πράγμα για έναν προγραμματιστή ή έναν blogger. Δεν έχουμε φτάσει στο τέλος της αριθμομηχανής, αλλά θα το αφήσουμε για άλλη μια φορά 😉 Σας ευχαριστώ πολύ που φτάσατε εδώ και ελπίζω να σας βοηθήσει να συμμετάσχετε σε διάφορα έργα 😀 Χαιρετισμούς
Γεια ... Δεν ξέρω αν είστε, αλλά δεν μπορώ να δω τις εικόνες σε αυτήν την αναφορά ...
αφορά
Ήταν πρόβλημα με το πρόγραμμα περιήγησής μου. Ντροπή για την ενόχληση.
Πρέπει να το διαβάσω με περισσότερες λεπτομέρειες, είμαι αρχάριος.
Εξαιρετικό άρθρο για να ξεκινήσετε με το git, αν και προτείνω να σημειώσετε για να κατανοήσετε τις λεπτομέρειες.
Μερικά πράγματα δεν μου ήταν ξεκάθαρα:
για ποια είναι η επιλογή Προσθήκη .gitignore Cαν και υποθέτω ότι θα το δω όταν το ασκώ,
Γιατί πρέπει να επαναλάβετε το git add main.c πριν από την επόμενη δέσμευση git, προσθέτει το main.c λέει στο git να συγκρίνει αυτό το αρχείο με την έκδοση δικτύου; Δεν συγκρίνει αυτόματα όλα τα προστιθέμενα αρχεία για παρακολούθηση;
Γεια σας Guillermo 🙂 είναι καλό που το βρήκατε χρήσιμο, για να απαντήσετε στις ερωτήσεις σας:
.gitignore είναι ένα αρχείο που λέει στο git ποιες μορφές ή μοτίβα πρέπει να αγνοηθούν, σε αυτήν την περίπτωση η επιλογή C προκαλεί την παράβλεψη .o αρχείων και άλλων που δημιουργούνται κατά τη στιγμή της σύνταξης, κάτι που είναι καλό γιατί αλλιώς το git σας θα τρελαθεί αμέσως κάθε συλλογής και παρακολούθησης 🙂 μπορείτε να ελέγξετε τον μεγάλο αριθμό μορφών που παραλείπονται στο πρότυπο C κάνοντας γάτα ή με πρόγραμμα επεξεργασίας κειμένου.
Παρόλο που το git θα παρακολουθεί κάθε αρχείο που προστίθεται στο δέντρο εργασίας, είναι απαραίτητο να επιλέξετε συγκεκριμένα ποια αρχεία θα εισέλθουν στην επόμενη δέσμευση, για να σας δώσουμε ένα παράδειγμα, ας υποθέσουμε ότι η εργασία σας σας οδήγησε να τροποποιήσετε 5 διαφορετικά αρχεία πριν να μπορείτε να δείτε το αποτέλεσμα. Εάν θέλετε να είστε λίγο πιο συγκεκριμένοι και να εξηγήσετε τι γίνεται σε κάθε ένα, μπορείτε να κάνετε git add file1; git commit, git add file2, git comm… .3,4,5; git δεσμεύω. Με αυτόν τον τρόπο η ιστορία σας είναι καθαρή και οι αλλαγές είναι καλά καθορισμένες. Και σε περίπτωση που πρέπει να αλλάξετε κάτι ή να επαναφέρετε (πιο σύνθετα θέματα) θα μπορούσατε να επαναφέρετε συγκεκριμένα πράγματα ή να προσθέσετε συγκεκριμένα πράγματα χωρίς να αλλάξετε τα υπόλοιπα.
Ελπίζω να βοηθήσει 🙂 χαιρετισμούς και ευχαριστώ που ρωτήσατε
PS: Το git add δεν λέει να συγκρίνουμε με την έκδοση στο δίκτυο, αλλά με την προηγούμενη δέσμευση στη γραμμή εργασίας σας, εάν ήταν τοπική (πράσινη) θα τη συγκρίνει με αυτήν, εάν ήταν απομακρυσμένη (κόκκινη) θα συγκρίνετε με αυτό το άλλο. Απλώς για να διευκρινίσω 😉
Τέλεια, φυσικά διευκρινίζει.