Η ιστορία του Git

GIT είναι ένα από αυτά τα εργαλεία που είναι τόσο απλή στη χρήση, ότι συχνά δεν ανακαλύπτετε μεγάλη απόσβεση σε αυτό. Περάστε την κλωνοποίηση ενός αποθετηρίου από τον ιστό καθώς και αυτό είναι γι ‘αυτό. Εάν κάνετε αλλαγές, ίσως τα παρακολουθείτε καθώς και αν είστε πραγματικά ευγενικοί, μπορείτε να δημιουργήσετε ένα αίτημα έλξης για να παράσχετε πίσω στο έργο. Ωστόσο, υπάρχουν πολλά περισσότερα που μπορείτε να κάνετε. Για παράδειγμα, καταλάβατε ότι το Git μπορεί να παρακολουθήσει τα συνεργατικά έγγραφα λέξεων; Ή να διαχειριστείτε τα δεδομένα εκκίνησης σε διάφορα πλαίσια Linux;

Το GIT ανήκει σε ένα νοικοκυριό προϊόντων εφαρμογής λογισμικού που κάνουν έλεγχο αναθεώρησης (ή έκδοση). Η ιδέα είναι ότι μπορείτε να δημιουργήσετε εφαρμογή λογισμικού (για παράδειγμα) καθώς και να παρακολουθείτε κάθε αναθεώρηση. Τα μεγάλα συστήματα έχουν διατάξεις για να επιτρέψουν σε πολλούς ανθρώπους να εργαστούν σε μια εργασία ταυτόχρονα. Υπάρχει επίσης συνήθως κάποια μέθοδος για τη διάσπαση μιας εργασίας σε διαφορετικά μέρη. Για παράδειγμα, μπορείτε να χωρίσετε για να δημιουργήσετε μια έκδοση του προϊόντος για διαφορετική αγορά ή να δοκιμάσετε μια πειραματική λειτουργία χωρίς να σπάσετε την τυπική ανάπτυξη. Σε ορισμένες περιπτώσεις, τελικά θα φέρετε αυτό το split πίσω στην πρωτογενή γραμμή.

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

Πόλεμος των ελεγκτών έκδοσης

Ιστορικά, μια μεγάλη εφαρμογή λογισμικού που έκανε αυτή η λειτουργία είχε μια νοοτροπία κεντρικού διακομιστή. Δηλαδή, ο κώδικας έζησε κάπου στο δίκτυο. Όταν επιθυμείτε να εργαστείτε σε ένα δεδομένα που το επιθεωρήσατε. Αυτό λειτούργησε μόνο αν κανείς άλλος είχε επιθεωρήσει. Φυσικά, αν ήσασταν επιτυχείς, κανείς άλλος δεν μπορεί να επιθεωρήσει τα δεδομένα σας μέχρι να τα βάλετε πίσω. Εάν ήσασταν μακριά από το δίκτυο καθώς και εσείς επιθυμούσατε να εργαστείτε σε κάτι, τόσο καλά.

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

Κλειστό εργαλείο

Μια εξαιρετικά μεγάλη κατανεμημένη ομάδα καθιερώνει τον πυρήνα του Linux. Μέχρι τα τέλη του 1998, η ομάδα είχε σκληρό χρόνο με τη διαχείριση της αναθεώρησης. Ένας προγραμματιστής του πυρήνα, [Larry McVoy], είχε μια επιχείρηση που δημιούργησε ένα κλιμακωτό κατανεμημένο προϊόν διαχείρισης προϊόντος που ονομάζεται bitkeeper. Παρόλο που ήταν ένα βιομηχανικό προϊόν, υπήρξε μια άδεια γειτονιάς που σας επέτρεψε να το χρησιμοποιήσετε εφόσον δεν εργάζεστε σε ένα ψεκασμό εργαλείο ενώ χρησιμοποιήσατε το προϊόν καθώς και για ένα χρόνο στη συνέχεια. Ο περιορισμός που χρησιμοποιείται τόσο για τον ανταγωνισμό όσο και στον ανταγωνισμό ανοικτού κώδικα. Αν και το προϊόν διατηρεί τα περισσότερα δεδομένα στο μηχάνημά σας, υπήρχε ένα στοιχείο διακομιστή, οπότε η επιχείρηση θα μπορούσε, στην πραγματικότητα, να παρακολουθήσει τη χρήση του προϊόντος.

Το 2002, η ομάδα του Kernel Linux αγκάλιασε τον Bitkeeper. [Linux Torvalds] ήταν μεταξύ των υποστηρικτών του νέου συστήματος. Ωστόσο, άλλοι σχεδιαστές (και ενδιαφερόμενος εορτασμοί όπως [Richard Stallman] ανησυχούσαν [Richard Stallman] για τη χρήση ενός ιδιόκτητου εργαλείου για την καθιέρωση ανοικτού κώδικα. Bitmover – η επιχείρηση πίσω από bitkeeper – πρόσθεσε μερικές πύλες για να εξασφαλίσει ότι οι σχεδιαστές που επιθυμούσαν να χρησιμοποιήσουν ένα διαφορετικό σύστημα θα μπορούσαν, έκταση.

Ως επί το πλείστον, τα πράγματα χαλαρώνουν με μόνο περιστασιακή φλόγα επιβεβαιώνουν την έκρηξη ακριβώς εδώ καθώς και εκεί. Αυτό είναι μέχρι το 2005, όταν αποκάλυψαν ότι η επιχείρηση [McVoy] αποκάλυψε ότι θα διακόψει την ελεύθερη έκδοση του bitkeeper. Φαινομενικά ο λόγος ήταν λόγω ενός ατόμου που δημιουργεί έναν πελάτη που πρόσθεσε χαρακτηριστικά από τη βιομηχανική έκδοση στο ελεύθερο.

Νέα εργαλεία

Ως αποτέλεσμα, δύο εργασίες περιστρέφονται όσο θεσπίζουν αντικατάσταση. Το Mercurial ήταν ένα καθώς και το git, φυσικά, ήταν το άλλο. [McVoy] Επικεντρώθηκε σε επαφή με έναν βιομηχανικό πελάτη απαιτώντας ότι ο εργαζόμενος τους [Bryan O’Sullivan] σταματήσει να συμβάλλει στο Mercurial, το οποίο έκανε. Φυσικά, τόσο η Mercurial όσο και η Git ήρθε σε πλήρωση, με το GIT που καταλήγει να είναι όχι μόνο η έκδοση της ομάδας του πυρήνα, αλλά και το σύστημα για πολλά άλλα άτομα επίσης.

Γέννηση Git

[Linus] αναζητήθηκε ένα ακόμα σύστημα off-the-shelf. Κανένας τότε είχε την απόδοση ή τα χαρακτηριστικά που θα ταιριάζουν στην ομάδα προώθησης του πυρήνα. Σχεδίασε GIT για την ταχύτητα, την απλότητα, καθώς και για να αποτρέψει την εκτέλεση των ίδιων πραγμάτων που έκαναν τα βιογραφικά σημειώματα (ένα πρόγραμμα Reviled Version Manage).

Η αρχική πρόοδος αναφέρεται ότι έχει λάβει μερικές ημέρες. since the version 1.0 release in late 2005, the software application has spawned more than one major website as well as has ended up being the system of option for many developers, both open source, as well as commercial.

Ο κατασχέτης

The flow chart shows the tricK Ακριβώς πώς η Git χειρίζεται τις μεγάλες προσφορές του προγραμματιστή σε μια στιγμή: αποθετήρια ή repos. Κάθε σχεδιαστής έχει συνολικό αντίγραφο ολόκληρης της εργασίας (το περιφερειακό αποθετήριο). Στην πραγματικότητα, αν δεν ενδιαφέρεστε να μοιράζεστε, δεν χρειάζεστε καν ένα απομακρυσμένο αποθετήριο. Το προσωπικό σας repo είναι τόσο πλήρως εξοπλισμένη εργασία git ως οποιοδήποτε άλλο, ακόμα και το τηλεχειριστήριο, το οποίο πιθανότατα στο github ή ένα ακόμα διακομιστή δικτύου. Κάνετε τις τροποποιήσεις σας στον κατάλογο εργασίας, το στάδιο αυτό που έχετε “κάνει” με (για τώρα), καθώς και αφιερώστε το στο repo σας. Όταν είναι καιρός, πιέζετε τις τροποποιήσεις σας όσο το τηλεχειριστήριο, καθώς και συγχέεται με τις αλλαγές των άλλων ανθρώπων.

Είναι ενδιαφέρον ότι η GIT δεν λειτουργεί μόνο σε δεδομένα κειμένου (θα σας δείξω περισσότερα γι ‘αυτό στην επόμενη δόση). Ωστόσο, λειτουργεί ωραιότερα σε δεδομένα κειμένου, δεδομένου ότι είναι σοφό επαρκής για να παρατηρήσετε τροποποιήσεις σε δεδομένα που δεν αλληλεπικαλύπτονται καθώς και να τα συγχωνεύσετε αυτόματα. Έτσι, αν επισκευάσω ένα σφάλμα, συμπεριλαμβανομένου ενός για βρόχο σε κάποιο κωδικό, καθώς και με την τροποποίηση κάποιων μηνυμάτων σφάλματος, το git θα το καλεί όλα όταν συγχωνεύσετε τον κώδικα μας.

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

Λύση

Εάν θέλετε να ενισχύσετε την κατανόησή σας για git πέρα ​​από το να κάνετε ένα κλώνο, ίσως να κάνετε χειρότερα από το να περάσετε 15 λεπτά σε αυτό το σεμινάριο. Εάν καταλαβαίνετε ήδη τα βασικά στοιχεία, μπορείτε να ανακαλύψετε κάποια νέα πράγματα σε ένα πιο προηγμένο φροντιστήριο ή να επιθεωρήσετε το βίντεο μιας ομιλίας [Linus] που παρέχεται σε git λίγο πίσω.

Το 2016, παρεμπιπτόντως, ο Butroeber αποκάλυψε ότι θα μετακινηθούν στην άδεια Apache που, φυσικά, είναι ανοιχτή πηγή. Τύπος ειρωνικού, έτσι δεν είναι;

Πιστώσεις φωτογραφιών:

Tux Soldier, από το [Sharkey], CC By-Sa 3.0

[Linus Torvalds] από το Magazine Linux, CC By-SA 3.0

Flowchart από [lbhtw], CC By-SA 3.0