Γράφοντας τις δικές σας ιστορίες με git

Γεια σε όλους 🙂 Πριν συνεχίσω με τα κείμενα της λίστας παραγγελιών, θέλω να γιορτάσω την κυκλοφορία του git 2.16 ευχαριστώντας καθέναν από αυτούς που έστειλαν μια ενημέρωση κώδικα και κάθε έναν από τους χρήστες, συνολικά είχαμε 4000 γραμμές μεταξύ ενημερώσεων και διορθώσεων , που δεν μιλά πολύ για την πρώτη μου έκδοση, αλλά μιλάει για την καλοσύνη σας your Ευχαριστώ! Τώρα, θα σας πω λίγο μυστικό, μέχρι τώρα δεν έχει περάσει μια στιγμή που δεν κάθομαι να γράψω ένα άρθρο και να το σκεφτώ πολύ, συνήθως απλά γράφω στη σειρά και στη συνέχεια η καλή σαύρα παίρνει την καλοσύνη του διορθώστε τα λάθη δακτυλογράφησης 🙂 οπότε ευχαριστώ και αυτόν.

Αυτό δεν είναι το καλύτερο όταν μιλάμε για τη σύνταξη άρθρων, υποτίθεται ότι πρέπει να έχει έναν στόχο και να χτίσει μια δομή, και να επισημάνει μικρά σημεία και κριτικές κ.λπ. κλπ ... Τώρα, αυτό δεν ισχύει μόνο για τα ιστολόγια γενικά, αλλά είναι απαραίτητο σε ένα λογισμικό που προσποιείται ότι είναι καλό 🙂 Για αυτήν την εργασία και μετά από κάποια προβλήματα με το λογισμικό ελέγχου έκδοσης που χρησιμοποιήθηκε στην ανάπτυξη του πυρήνα πριν από μερικά χρόνια, γεννήθηκε git ????

Πού να μάθετε git?

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

Τι κάνει το git;

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

Το ενδιαφέρον για το git είναι ο τρόπος διατήρησης των εκδόσεων δεδομένων. Παλαιότερα (άλλα προγράμματα ελέγχου εκδόσεων) πήραν συμπιέσεις όλων των υπαρχόντων αρχείων σε ένα σημείο της ιστορίας, όπως η δημιουργία ενός στο Cloud. Το Git ακολουθεί μια διαφορετική προσέγγιση, όταν εκτελεί ένα commit επισημαίνεται ένα σημείο στην ιστορία, αυτό το σημείο στην ιστορία έχει μια σειρά τροποποιήσεων και λειτουργεί, στο τέλος της ημέρας, όλες οι τροποποιήσεις συγκεντρώνονται με την πάροδο του χρόνου και τα αρχεία λαμβάνονται για να είναι σε θέση να συμπιέσουν ή να επισημάνουν ως ορόσημα του εκδόσεις. Αφού το ξέρω ότι όλα αυτά ακούγονται περίπλοκα, θα σας ταξιδέψω σε ένα μαγικό ταξίδι σε ένα εξαιρετικά βασικό παράδειγμα.

Μικρό πρόγραμμα υπολογιστικής

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

Τα δικά. Christopher Diaz Riveros

Έχουμε προσθέσει μερικά απλά πράγματα όπως η άδεια (πολύ σημαντικό αν θέλετε να προστατεύσετε την εργασία σας, στην περίπτωσή μου, τους αναγκάστε να μοιραστούν τα αποτελέσματα εάν θέλουν να το χρησιμοποιήσουν ως βάση: P)

Τώρα ας πάμε στο αγαπημένο μας τερματικό, git clone είναι η εντολή που είναι υπεύθυνη για τη λήψη του αποθετηρίου που βρίσκεται στο url εκχωρήθηκε και δημιουργήστε ένα τοπικό αντίγραφο στον υπολογιστή μας.

Τα δικά. Christopher Diaz Riveros

Τώρα ας το ελέγξουμε git log τι έχει συμβεί στην ιστορία του έργου μας:

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

η πρώτη κίτρινη γραμμή είναι ο "γραμμικός κώδικας δέσμευσης" κάθε δέσμευση έχει το δικό της μοναδικό αναγνωριστικό, με το οποίο μπορείτε να κάνετε πολλά πράγματα, αλλά θα το αποθηκεύσουμε για αργότερα. Τώρα έχουμε HEAD του celeste και master πράσινος. Αυτοί είναι "δείκτες", η λειτουργία τους είναι να δείξει την τρέχουσα τοποθεσία της ιστορίας μας (HEAD) και τον κλάδο στον οποίο εργαζόμαστε στον υπολογιστή μας (master).

origin/master είναι το αντίστοιχο του Διαδικτύου, origin είναι το προεπιλεγμένο όνομα που έχει εκχωρηθεί στο δικό μας URL, Και master είναι ο κλάδος στον οποίο εργάζεστε ... για να το κρατήσετε απλό, όσοι έχουν / είναι αυτές που δεν ανήκουν στην ομάδα μας, αλλά είναι αναφορές σε αυτό που υπάρχει στο Διαδίκτυο.

Έπειτα έχουμε τον συγγραφέα, την ημερομηνία και την ώρα και τη σύνοψη δεσμεύσεων. Αυτή είναι μια μικρή επισκόπηση του τι συνέβη εκείνο το σημείο της ιστορίας, πολύ σημαντικό σε πολλά έργα και υπάρχουν πολλές καταδικαστικές πληροφορίες. Ας ρίξουμε μια πιο προσεκτική ματιά σε αυτό που συνέβη στη δέσμευση με την εντολή git show <código-de-commit>

Τα δικά. Christopher Diaz Riveros

Η εντολή git show μας οδηγεί σε αυτήν την οθόνη σε μορφή ενημέρωσης κώδικα, όπου μπορείτε να δείτε τι έχει προστεθεί και τι έχει αφαιρεθεί (αν κάτι είχε αφαιρεθεί) εκείνη τη στιγμή στην ιστορία, μέχρι στιγμής μας δείχνει μόνο ότι εγγραφές .gitignore,README.mdLICENSE.

Τώρα ας πάμε στην επιχείρηση, ας γράψουμε ένα αρχείο 🙂 θα δημιουργήσουμε το πρώτο ορόσημο στην ιστορία μας 😀:

Τα δικά. Christopher Diaz Riveros

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

Τα δικά. Christopher Diaz Riveros

Αυτό ήταν εύκολο 🙂 τώρα ας δούμε την ακόλουθη χρήσιμη εντολή: git status

Τα δικά. Christopher Diaz Riveros

Κάποια ευγενική ψυχή έχει μεταφράσει git για να την διευκολύνει να ακολουθήσει, εδώ έχουμε πολλές χρήσιμες πληροφορίες, γνωρίζουμε ότι βρισκόμαστε στον κύριο κλάδο, με τον οποίο έχουμε ενημερωθεί με origin/master(ο κλάδος Github), έχουμε αρχεία χωρίς παρακολούθηση! και ότι για να τα προσθέσουμε πρέπει να χρησιμοποιήσουμε git add, ας δοκιμάσουμε 🙂

Τα δικά. Christopher Diaz Riveros

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

Τα δικά. Christopher Diaz Riveros

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

Τα δικά. Christopher Diaz Riveros

Τώρα θα δούμε την ιστορία του έργου μας git log

Τα δικά. Christopher Diaz Riveros

Και πάλι στο αρχείο καταγραφής, τώρα μπορούμε να δούμε ότι οι πράσινες και οι κόκκινες γραμμές διέφεραν, διότι στον υπολογιστή μας, είμαστε μια δέσμευση πάνω από αυτές που είναι αποθηκευμένες στο Διαδίκτυο 🙂 πρόκειται να συνεχίσουμε τη δουλειά, ας υποθέσουμε ότι τώρα θέλω να δείξω ένα μήνυμα σε περίπτωση που ο χρήστης βάλει περισσότερα από ένα επιχειρήματα στο πρόγραμμα (κάτι που θα έκανε την αριθμομηχανή να μπερδευτεί 🙂)

Όπως μπορούμε να δούμε, το πρόγραμμά μας έχει αναπτυχθεί πολύ 😀, τώρα έχουμε τη λειτουργία imprimir_ayuda() το οποίο εμφανίζει ένα μήνυμα σχετικά με τον τρόπο χρήσης υπολογισμών και στο μπλοκ main() τώρα κάνουμε μια κριτική με if(Κάτι που θα δούμε σε ένα πρόγραμμα εκμάθησης προγραμματισμού κάποια άλλη στιγμή, προς το παρόν είναι μόνο απαραίτητο να γνωρίζουμε ότι εάν έχουν εισαχθεί περισσότερα από 2 ορίσματα στην υπολογισματική, ότι το πρόγραμμα τελειώνει και εμφανίζεται η βοήθεια. Ας το εκτελέσουμε:

Τα δικά. Christopher Diaz Riveros

Όπως μπορείτε να δείτε, τώρα εκτυπώνει τον αριθμό που έχει παραδοθεί αντί για τον αριθμό των επιχειρημάτων, αλλά ότι δεν σας είπα προηγουμένως 🙂 για τους περίεργους echo $? δείχνει τον κωδικό εξόδου του τελευταίου προγράμματος που εκτελέστηκε, δηλαδή 1 επειδή έχει λήξει κατά λάθος. Τώρα ας δούμε πώς πηγαίνει η ιστορία μας:

Τα δικά. Christopher Diaz Riveros

Τώρα ξέρουμε ότι είμαστε 1 δεσμευμένοι μπροστά από το Github, ότι το αρχείο main.c έχει τροποποιηθεί, ας δημιουργήσουμε την επόμενη δέσμευση κάνοντας git add main.c  και στη συνέχεια git commit????

Τα δικά. Christopher Diaz Riveros

Τώρα είμαστε λίγο πιο συγκεκριμένοι, αφού έχουμε εφαρμόσει μια συνάρτηση και αλλάξαμε τον κωδικό επικύρωσης. Τώρα που έχει αποθηκευτεί, θα εξετάσουμε την τελευταία μας αλλαγή. Μπορούμε να το δούμε με git show HEAD

Τα δικά. Christopher Diaz Riveros

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

Τώρα θα δούμε το αρχείο καταγραφής: (git log)

Τα δικά. Christopher Diaz Riveros

Μπορούμε να δούμε ότι είμαστε δύο δεσμεύσεις μπροστά από την έκδοση Github, πρόκειται να εξισώσουμε λίγο τον δείκτη 🙂 για αυτό που χρησιμοποιούμε git push origin master

Με αυτό λέμε, στείλτε τις δεσμεύσεις μου στο url origin στο κλαδί master

Τα δικά. Christopher Diaz Riveros

Συγχαρητήρια! Τώρα οι αλλαγές σας είναι στο Github, δεν με πιστεύετε; ας το αναθεωρήσουμε 😉

Τα δικά. Christopher Diaz Riveros

Τώρα έχουμε τις 3 δεσμεύσεις για το Github 🙂

περίληψη

Έχουμε αγγίξει τις πιο βασικές πτυχές του git, τώρα μπορούν να δημιουργήσουν μια απλή ροή εργασίας στα έργα τους, δεν είναι σχεδόν τίποτα από όλη τη μεγάλη ποικιλία πραγμάτων που μπορούν να γίνουν με το git, αλλά είναι σίγουρα το πιο πρακτικό και καθημερινό πράγμα για έναν προγραμματιστή ή έναν blogger. Δεν έχουμε φτάσει στο τέλος της αριθμομηχανής, αλλά θα το αφήσουμε για άλλη μια φορά 😉 Σας ευχαριστώ πολύ που φτάσατε εδώ και ελπίζω να σας βοηθήσει να συμμετάσχετε σε διάφορα έργα 😀 Χαιρετισμούς


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   Παύλος dijo

    Γεια ... Δεν ξέρω αν είστε, αλλά δεν μπορώ να δω τις εικόνες σε αυτήν την αναφορά ...

    αφορά

  2.   Παύλος dijo

    Ήταν πρόβλημα με το πρόγραμμα περιήγησής μου. Ντροπή για την ενόχληση.

  3.   Tecprog World dijo

    Πρέπει να το διαβάσω με περισσότερες λεπτομέρειες, είμαι αρχάριος.

  4.   Guillermo dijo

    Εξαιρετικό άρθρο για να ξεκινήσετε με το git, αν και προτείνω να σημειώσετε για να κατανοήσετε τις λεπτομέρειες.
    Μερικά πράγματα δεν μου ήταν ξεκάθαρα:
    για ποια είναι η επιλογή Προσθήκη .gitignore Cαν και υποθέτω ότι θα το δω όταν το ασκώ,
    Γιατί πρέπει να επαναλάβετε το git add main.c πριν από την επόμενη δέσμευση git, προσθέτει το main.c λέει στο git να συγκρίνει αυτό το αρχείο με την έκδοση δικτύου; Δεν συγκρίνει αυτόματα όλα τα προστιθέμενα αρχεία για παρακολούθηση;

    1.    ChrisADR dijo

      Γεια σας Guillermo 🙂 είναι καλό που το βρήκατε χρήσιμο, για να απαντήσετε στις ερωτήσεις σας:

      .gitignore είναι ένα αρχείο που λέει στο git ποιες μορφές ή μοτίβα πρέπει να αγνοηθούν, σε αυτήν την περίπτωση η επιλογή C προκαλεί την παράβλεψη .o αρχείων και άλλων που δημιουργούνται κατά τη στιγμή της σύνταξης, κάτι που είναι καλό γιατί αλλιώς το git σας θα τρελαθεί αμέσως κάθε συλλογής και παρακολούθησης 🙂 μπορείτε να ελέγξετε τον μεγάλο αριθμό μορφών που παραλείπονται στο πρότυπο C κάνοντας γάτα ή με πρόγραμμα επεξεργασίας κειμένου.

      Παρόλο που το git θα παρακολουθεί κάθε αρχείο που προστίθεται στο δέντρο εργασίας, είναι απαραίτητο να επιλέξετε συγκεκριμένα ποια αρχεία θα εισέλθουν στην επόμενη δέσμευση, για να σας δώσουμε ένα παράδειγμα, ας υποθέσουμε ότι η εργασία σας σας οδήγησε να τροποποιήσετε 5 διαφορετικά αρχεία πριν να μπορείτε να δείτε το αποτέλεσμα. Εάν θέλετε να είστε λίγο πιο συγκεκριμένοι και να εξηγήσετε τι γίνεται σε κάθε ένα, μπορείτε να κάνετε git add file1; git commit, git add file2, git comm… .3,4,5; git δεσμεύω. Με αυτόν τον τρόπο η ιστορία σας είναι καθαρή και οι αλλαγές είναι καλά καθορισμένες. Και σε περίπτωση που πρέπει να αλλάξετε κάτι ή να επαναφέρετε (πιο σύνθετα θέματα) θα μπορούσατε να επαναφέρετε συγκεκριμένα πράγματα ή να προσθέσετε συγκεκριμένα πράγματα χωρίς να αλλάξετε τα υπόλοιπα.

      Ελπίζω να βοηθήσει 🙂 χαιρετισμούς και ευχαριστώ που ρωτήσατε

    2.    ChrisADR dijo

      PS: Το git add δεν λέει να συγκρίνουμε με την έκδοση στο δίκτυο, αλλά με την προηγούμενη δέσμευση στη γραμμή εργασίας σας, εάν ήταν τοπική (πράσινη) θα τη συγκρίνει με αυτήν, εάν ήταν απομακρυσμένη (κόκκινη) θα συγκρίνετε με αυτό το άλλο. Απλώς για να διευκρινίσω 😉

      1.    Guillermo dijo

        Τέλεια, φυσικά διευκρινίζει.