Μία από τις πιο θεμελιώδεις υπηρεσίες που παρέχει η Git είναι η ιστορία του έργου. Δεδομένου ότι το Git παρακολουθεί όλες τις αλλαγές στα αρχεία που γίνονται μέσα σε ένα αποθετήριο, μπορεί να προσφέρει πολύ ισχυρές δυνατότητες καταγραφής. Μπορείτε να ζητήσετε το ιστορικό ενός έργου με πολλούς διαφορετικούς τρόπους και μπορείτε να εξαγάγετε και να εμφανίσετε διάφορα δεδομένα χρησιμοποιώντας μία ευέλικτη εντολή.
ο git log Η εντολή είναι τεράστια, η μεγαλύτερη από οποιαδήποτε κανονική εντολή Git. Το εγχειρίδιο έχει μήκος πάνω από 2.500 γραμμές. Ευτυχώς, git log παρέχει πολλές από τις πιο χρήσιμες συμπεριφορές του από λίγες βασικές επιλογές.
Βασική καταγραφή με την προεπιλεγμένη συμπεριφορά
Από προεπιλογή, git log δείχνει μια αντίστροφη χρονολογική λίστα των δεσμεύσεων. Κάθε δέσμευση περιλαμβάνει το hash, τον συντάκτη, την ημερομηνία και το μήνυμα δέσμευσης:
Η εντολή χρησιμοποιεί έναν τηλεειδοποιητή (π.χ. λιγότερο, περισσότερο) για να δείξει την πλήρη έξοδο, ώστε να μπορείτε να πλοηγηθείτε εύκολα στα αποτελέσματα. Μπορείτε να ρυθμίσετε το Git ώστε να χρησιμοποιεί ένα πρόγραμμα της επιλογής σας, όπως
το πιο τηλεειδοποιητή.Ακολουθεί κάποια έξοδος καταγραφής git από το αποθετήριο του πηγαίου κώδικα git εαυτό:
δεσμεύστε 670b81a890388c60b7032a4f5b879f2ece8c4558 (HEAD -> master, origin / next,
προέλευση / πλοίαρχος, προέλευση / HEAD)
Συγγραφέας: Junio C Hamano
Ημερομηνία: Δευ 14 Ιουνίου 13:23:28 2021 +0900
Η δεύτερη παρτίδα
Αποσύνδεση από: Junio C Hamano
Το αποτέλεσμα ξεκινά με το δεσμευτικό hash (670...) ακολουθούμενη από μια λίστα υποκαταστημάτων που δείχνουν προς το παρόν αυτήν τη δέσμευση (HEAD -> πλοίαρχος, και τα λοιπά.)
Η επόμενη γραμμή περιγράφει τον συντάκτη αυτής της δέσμευσης, δίνοντας το όνομα και τη διεύθυνση ηλεκτρονικού ταχυδρομείου τους.
Η πλήρης ημερομηνία και ώρα της δέσμευσης ακολουθεί στην επόμενη γραμμή.
Τέλος, εμφανίζεται το πλήρες περιεχόμενο του μηνύματος δέσμευσης. Μπορείτε να ελέγξετε τα περισσότερα από τα υπόλοιπα που προσφέρει το git log με επιλογές γραμμής εντολών. Υπάρχουν δύο βασικοί τύποι επιλογών:
- Μορφοποίηση, που καθορίζει τον τρόπο με τον οποίο το Git εμφανίζει κάθε δέσμευση.
- Φιλτράρισμα, το οποίο καθορίζει ποια δεσμεύει git log περιλαμβάνει.
Εκτός από τις επιλογές γραμμής εντολών, το αρχείο καταγραφής git αποδέχεται επιχειρήματα που καθορίζουν αρχεία, δεσμεύσεις, κλάδους ή άλλους τύπους αναφοράς. Αυτά εφαρμόζουν περαιτέρω φιλτράρισμα.
Μορφοποίηση Git Log Output
Μία από τις απλούστερες προσαρμογές είναι η --μία γραμμή επιλογή που παράγει μια πολύ σύντομη έξοδο:
git log - σε απευθείας σύνδεση
Κάθε γραμμή στο αρχείο καταγραφής περιέχει τώρα μόνο ένα συντομευμένο δεσμευτικό κατακερματισμό και το θέμα του το μήνυμα δέσμευσης. Αυτός είναι ένας εξαιρετικός τρόπος για να λάβετε μια επισκόπηση των πρόσφατων δεσμεύσεων στο έργο:
Δυστυχώς, χωρίς κανένα άλλο πλαίσιο, αυτές οι πληροφορίες δεν είναι πάντα τόσο χρήσιμες. Μπορεί να σας δώσει μια αόριστη αίσθηση για το έργο, αλλά δεν διαθέτει ημερομηνίες και άλλες χρήσιμες πληροφορίες σχετικά με συγγραφείς και αρχεία.
Προβολή γραφήματος κλάδου
ο --γραφική παράσταση Η επιλογή σας επιτρέπει να οπτικοποιήσετε τις σχέσεις μεταξύ των κλάδων. Είναι πολύ βασικό, αλλά μπορεί να βοηθήσει στην αποσύνδεση μιας περίπλοκης ιστορίας.
git log - σε απευθείας σύνδεση --graph
Σχετιζομαι με: Πώς να δημιουργήσετε ένα νέο υποκατάστημα στο Git
Προσαρμοσμένη όμορφη παραγωγή
Μπορείτε να επιτύχετε πιο περίπλοκη μορφοποίηση καθορίζοντάς την λεπτομερώς χρησιμοποιώντας το --αρκετά επιλογή. Η σύνταξη πηγαίνει από πολύ απλή σε πολύ πιο περίπλοκη, έτσι συμβουλευτείτε ένα εγχειρίδιο για πλήρεις λεπτομέρειες.
git log --pretty = σύντομο
Είναι ουσιαστικά το ίδιο με git log χωρίς την ημερομηνία ή το πλήρες μήνυμα:
git log --pretty = διαδικτυακά
Είναι ισοδύναμο με git log - σε απευθείας σύνδεση.
git log --pretty = πληρέστερη
Περιλαμβάνει πολλές λεπτομέρειες. Διαχωρίζει ακόμη και τον συγγραφέα και τον δημιουργό που μπορεί, θεωρητικά, να είναι διαφορετικοί άνθρωποι:
Με την μορφή: παραλλαγή, μπορείτε να παρέχετε μια συμβολοσειρά που περιέχει ό, τι περιεχόμενο θέλετε, συμπεριλαμβανομένων των σημείων κράτησης θέσης που αντικαθίστανται από διάφορα δεδομένα. Ακολουθούν ορισμένα παραδείγματα κράτησης θέσης:
- % Η δεσμεύω κατακερματισμό
- % ω συντομευμένο δεσμευτικό κατακερματισμό
- %Ενα δ ημερομηνία συγγραφέα
- % ar ημερομηνία συγγραφέα, σχετική
- %μικρό δεσμεύστε θέμα μηνύματος
- %σι δεσμεύστε το σώμα του μηνύματος
- %Π συντομευμένος γονικός κατακερματισμός
Μπορείτε να προσθέσετε σταθερούς χαρακτήρες στην έξοδο και να τον χρωματίσετε. Αυτό το παράδειγμα δείχνει επίσης μια παραλλαγή στη μορφή ημερομηνίας:
git log --pretty = μορφή: '% C (αυτόματη)% h [% ad]% s' - ημερομηνία = σύντομη
Σημειώστε ότι οι αγκύλες περιβάλλουν την ημερομηνία. Όποια και αν είναι η μορφοποίηση που επιλέγετε, εάν θέλετε η έξοδος να είναι χρήσιμη σε αγωγό ή για άλλες μορφές επεξεργασίας κειμένου, θα πρέπει να σκεφτείτε πώς να οριοθετήσετε κάθε μέρος της εξόδου.
Εμφάνιση Diffs στο αρχείο καταγραφής
Μια σημαντική λεπτομέρεια κατά την εξέταση του ιστορικού ενός αποθετηρίου είναι οι ίδιες οι διαφορές. Αντιπροσωπεύουν ό, τι πραγματικά έχει αλλάξει στον κώδικα! Για αρχάριους, μπορείτε να λάβετε μια περίληψη των αλλαγών μαζί με κάθε δέσμευση χρησιμοποιώντας - σορτς:
git log - συντόμευση
Αυτό προσθέτει μια γραμμή όπως:
1 αρχείο άλλαξε, 48 εισαγωγές (+), 2 διαγραφές (-)
Στο κάτω μέρος κάθε δέσμευσης. Θα βλέπετε συχνά αυτό το είδος περίληψης - σε όλες τις σελίδες στο GitHub, για παράδειγμα - και είναι ένας χρήσιμος τρόπος να κρίνετε γρήγορα το εύρος μιας συγκεκριμένης δέσμευσης. Για πιο αναλυτικές πληροφορίες, μπορείτε να συμπεριλάβετε πλήρη έξοδο patch (diffs) χρησιμοποιώντας το -Π σημαία:
git log -p
Φιλτράρισμα Git Log Output
Όποια μορφοποίηση εφαρμόζετε, θα εξακολουθείτε να βλέπετε το πλήρες αρχείο καταγραφής όλων των δεσμεύσεων στον τρέχοντα κλάδο. Ακόμα κι αν το Git τα χωρίζει σε σελίδες, μπορεί να έχει πολλά αποτελέσματα. Οι ακόλουθες επιλογές σάς επιτρέπουν να προσαρμόσετε ποια δεσμεύει το αρχείο καταγραφής περιλαμβάνει.
Περιορισμός κατά ποσό
Αν θέλετε απλώς να περικόψετε τα αποτελέσματα για να δείξετε τις πιο πρόσφατες δεσμεύσεις, χρησιμοποιήστε το -[αριθμός] σύνταξη:
git log -2
Περιορισμός κατά ημερομηνία
Για να περιορίσετε το σύνολο δεσμεύσεων σε ένα συγκεκριμένο εύρος ημερομηνιών, χρησιμοποιήστε το --Από (--μετά) και --μέχρι (--πριν) επιλογές. Καθένα λαμβάνει ημερομηνία σε μορφή ISO 8601. Μπορείτε να χρησιμοποιήσετε είτε --Από ή --μέχρι μόνοι τους, ή και τα δύο μαζί για να καθορίσουν ένα εύρος. Οι επιλογές --μετά και --πριν είναι συνώνυμα.
git log --since = "2021-01-01" --until = "2021-05-01"
Περιορισμός ανά αρχείο
Το αρχείο καταγραφής Git μπορεί να επικεντρωθεί σε ένα συγκεκριμένο αρχείο και όχι σε κάθε αρχείο στο αποθετήριο σας. Αυτό είναι εξαιρετικό για να σας βοηθήσει να μάθετε πώς ένα συγκεκριμένο αρχείο άλλαξε με την πάροδο του χρόνου. Απλώς προσθέστε το όνομα αρχείου στο τέλος της εντολής git:
όνομα αρχείου git log
Θα δείτε μόνο εκείνες τις δεσμεύσεις που επηρεάστηκαν όνομα αρχείου.
Διαφορές μεταξύ κλάδων
Ενδέχεται να έχετε κάποιες μοναδικές απαιτήσεις κατά την προβολή του αρχείου καταγραφής. Για παράδειγμα, αντί να δείτε ολόκληρο το ιστορικό, ίσως θέλετε να δείτε τι έχει αλλάξει σε αυτόν τον συγκεκριμένο κλάδο. Το Git log μπορεί να βοηθήσει μέσω του ref1..ref2 σύνταξη. Υπάρχουν τρεις ελαφρώς διαφορετικές προσεγγίσεις που μπορείτε να χρησιμοποιήσετε:
- Προβολή δεσμεύσεων που είναι κυρίως, αλλά όχι κλάδος:
git log - αρχική γραμμή / κλάδος..όριο / κύριο
- Προβολή δεσμεύσεων που βρίσκονται σε κλάδο, αλλά όχι κύριες:
git log - αρχική γραμμή /κύριος..προέλευση/κλαδί
- Προβολή δεσμεύσεων που υπάρχουν μόνο σε κλάδο ή κύρια:
git log - αρχική γραμμή / κλάδος...προέλευση / κύρια
Όπως μπορείτε να δείτε το ιστορικό μεταξύ των κλάδων χρησιμοποιώντας το ref1..ref2 σύνταξη, μπορείτε επίσης να δείτε το ιστορικό μεταξύ ετικετών με τον ίδιο τρόπο. Εξάλλου, τόσο οι ετικέτες όσο και οι κλάδοι είναι τύποι αναφοράς.
git log --abbrev-commit --pretty = μορφή: '% h% ar% s' v2.32.0-rc3..v2.32.0
Εάν ετοιμάζετε σημειώσεις έκδοσης για ένα μεγαλύτερο έργο, git shortlog θα πρέπει να είναι το πρώτο λιμάνι κλήσης. Παράγει μια λίστα συγγραφέων με αντικείμενα αφοσίωσης δίπλα τους. Μπορείτε να μεταβιβάσετε το εύρος αναφοράς για να περιορίσετε το ιστορικό με παρόμοιο τρόπο με το git log:
git shortlog v2.32.0-rc3..v2.32.0
ο εντολή git show είναι ακόμη πιο ευέλικτο από git log. Μπορεί να λειτουργήσει με ετικέτες και άλλους τύπους αντικειμένων git πέρα από το ιστορικό δεσμεύσεων. Μοιράζεται πολλές επιλογές με git log, αλλά θα το χρειαστείτε πραγματικά μόνο αν χρειαστεί να ανακαλύψετε λεπτομέρειες χαμηλότερου επιπέδου.
Ελέγξτε το παρελθόν με το Git Log
Το αρχείο καταγραφής Git είναι μια περίπλοκη εντολή, αλλά μπορείτε να χρησιμοποιήσετε πολλή χρήση από τις πιο βασικές επιλογές του. Η περιήγηση στο ιστορικό ενός αποθετηρίου είναι ένας εξαιρετικός τρόπος για να κατανοήσετε πόσο συχνά συμβαίνουν οι αλλαγές και πόσα άτομα τα κάνουν. Μόλις κατανοήσετε καλά την ιστορία του έργου, θα είστε σε εξαιρετική θέση να συνεισφέρετε μόνοι σας.
Θέλετε να ασκήσετε τους κωδικοποιητές σας και να βοηθήσετε έργα ανοιχτού κώδικα; Δείτε πώς μπορείτε να συνεισφέρετε στο GitHub.
Διαβάστε Επόμενο
- Προγραμματισμός
- GitHub
- Συμβουλές κωδικοποίησης

Ο Bobby είναι λάτρης της τεχνολογίας που εργάστηκε ως προγραμματιστής λογισμικού για τις περισσότερες από δύο δεκαετίες. Είναι παθιασμένος με το gaming, εργάζεται ως Editor Editor στο Switch Player Magazine και είναι βυθισμένος σε όλες τις πτυχές των διαδικτυακών εκδόσεων και της ανάπτυξης ιστού.
Εγγραφείτε στο Newsletter μας
Εγγραφείτε στο ενημερωτικό δελτίο μας για τεχνικές συμβουλές, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!
Ένα ακόμη βήμα…!
Επιβεβαιώστε τη διεύθυνση email σας στο email που μόλις σας στείλαμε.