Πώς να επιθεωρήσετε το ιστορικό ενός έργου με το Git Log

Πώς να επιθεωρήσετε το ιστορικό ενός έργου με το Git Log

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





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





Βασική καταγραφή με την προεπιλεγμένη συμπεριφορά

Από προεπιλογή, git log εμφανίζει έναν αντίστροφο-χρονολογικό κατάλογο των δεσμεύσεων. Κάθε δέσμευση περιλαμβάνει το hash, το συντάκτη, την ημερομηνία και το μήνυμα δέσμευσης:





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

Εδώ είναι κάποια έξοδος git log από το αποθετήριο του πηγαίου κώδικα git εαυτό:



commit 670b81a890388c60b7032a4f5b879f2ece8c4558 (HEAD -> master, origin/next,
origin/master, origin/HEAD)
Author: Junio C Hamano
Date: Mon Jun 14 13:23:28 2021 +0900
The second batch
Signed-off-by: Junio C Hamano

Το αποτέλεσμα ξεκινά με το hash δέσμευσης ( 670 ...) ακολουθούμενη από μια λίστα υποκαταστημάτων που δείχνουν αυτήν τη στιγμή τη δέσμευση ( ΚΕΦΑΛΗ -> κύριος , και τα λοιπά.)

tcl roku τηλεχειριστήριο δεν λειτουργεί

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





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

Τέλος, εμφανίζεται το πλήρες περιεχόμενο του μηνύματος δέσμευσης. Μπορείτε να ελέγξετε τα περισσότερα από όλα τα άλλα που προσφέρει το git log με επιλογές γραμμής εντολών. Υπάρχουν δύο βασικοί τύποι επιλογών:





  • Μορφοποίηση, η οποία καθορίζει τον τρόπο με τον οποίο το Git εμφανίζει κάθε δέσμευση.
  • Φιλτράρισμα, το οποίο καθορίζει ποια δεσμεύει git log περιλαμβάνει.

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

Μορφοποίηση εξόδου καταγραφής Git

Μία από τις απλούστερες προσαρμογές είναι η --μία γραμμή επιλογή που παράγει μια πολύ σύντομη έξοδο:

git log --oneline

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

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

Προβολή γραφήματος κλάδου

ο --γραφική παράσταση επιλογή σας επιτρέπει να απεικονίσετε τις σχέσεις μεταξύ των κλάδων. Είναι πολύ βασικό, αλλά μπορεί να βοηθήσει να ξεμπερδέψει μια περίπλοκη ιστορία.

git log --oneline --graph

Σχετίζεται με: Πώς να δημιουργήσετε ένα νέο υποκατάστημα στο Git

Προσαρμοσμένη όμορφη έξοδος

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

πώς αποσυνδέεστε από το netflix
git log --pretty=short

Είναι ουσιαστικά το ίδιο με git log χωρίς ημερομηνία ή πλήρες μήνυμα:

git log --pretty=oneline

Είναι ισοδύναμο με git log -oneline Το

git log --pretty=fuller

Περιλαμβάνει πολλές λεπτομέρειες. Διαχωρίζει ακόμη και τον συγγραφέα και τον αποστολέα που θεωρητικά μπορεί να είναι διαφορετικοί άνθρωποι:

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

  • διαπράττω χασίς
  • %h συντομευμένη καταπίεση κατακερματισμού
  • %προς το ημερομηνία συγγραφέα
  • %Με ημερομηνία συγγραφέα, σχετική
  • %μικρό δέσμευση θέματος μηνύματος
  • % β δέσμευση σώματος μηνυμάτων
  • συντομευμένα γονικά hashes

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

git log --pretty=format:'%C(auto) %h [%ad] %s' --date=short

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

Εμφάνιση διαφορών στο ημερολόγιο

Μια σημαντική λεπτομέρεια κατά την εξέταση του ιστορικού ενός αποθετηρίου είναι οι ίδιες οι διαφορές. Αντιπροσωπεύουν αυτό που έχει αλλάξει πραγματικά στον κώδικα, τελικά! Για αρχή, μπορείτε να λάβετε μια περίληψη των αλλαγών μαζί με κάθε δέσμευση που χρησιμοποιείτε --shortstat :

git log --shortstat

Αυτό προσθέτει μια γραμμή όπως:

1 file changed, 48 insertions(+), 2 deletions(-)

Στο κάτω μέρος κάθε δέσμευσης. Θα βλέπετε συχνά αυτού του είδους την περίληψη - σε όλες τις σελίδες στο GitHub, για παράδειγμα - και είναι ένας χρήσιμος τρόπος για να κρίνετε γρήγορα το εύρος μιας συγκεκριμένης δέσμευσης. Για πιο λεπτομερείς πληροφορίες, μπορείτε να συμπεριλάβετε την πλήρη έξοδο ενημερωμένης έκδοσης κώδικα (diffs) χρησιμοποιώντας το σημαία:

git log -p

Φιλτράρισμα εξόδου καταγραφής Git

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

Περιορισμός κατά Ποσό

Εάν θέλετε απλώς να κόψετε τα αποτελέσματα για να εμφανίσετε τις πιο πρόσφατες λίγες δεσμεύσεις, χρησιμοποιήστε το -[αριθμός] σύνταξη:

git log -2

Περιορισμός κατά ημερομηνία

Για να περιορίσετε το σύνολο των δεσμεύσεων σε ένα δεδομένο εύρος ημερομηνιών, χρησιμοποιήστε το --Από ( --μετά ) και --μέχρι ( --πριν ) επιλογές. Κάθε ένα από αυτά έχει ημερομηνία σε μορφή ISO 8601. Μπορείτε να χρησιμοποιήσετε οποιοδήποτε από τα δύο --Από ή --μέχρι μόνοι τους ή και τα δύο μαζί για να καθορίσουν ένα εύρος. Οι επιλογές --μετά και --πριν είναι συνώνυμα.

git log --since='2021-01-01' --until='2021-05-01'

Περιορισμός κατά Αρχείο

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

git log filename

Θα δείτε μόνο εκείνες τις δεσμεύσεις που επηρεάζουν όνομα αρχείου Το

Διαφορές Μεταξύ Κλαδιών

Ενδέχεται να έχετε κάποιες μοναδικές απαιτήσεις κατά την προβολή του αρχείου καταγραφής ενός υποκαταστήματος. Για παράδειγμα, αντί να δείτε ολόκληρο το ιστορικό, ίσως θέλετε να δείτε τι έχει αλλάξει σε αυτόν τον συγκεκριμένο κλάδο. Το Git log μπορεί να βοηθήσει μέσω του ref1..ref2 σύνταξη. Υπάρχουν τρεις ελαφρώς διαφορετικές προσεγγίσεις που μπορείτε να χρησιμοποιήσετε:

  1. Προβολή δεσμεύσεων που βρίσκονται στην κύρια, αλλά όχι διακλάδωση: | _+_ |
  2. Προβολή δεσμεύσεων που βρίσκονται στο υποκατάστημα, αλλά όχι κύριες: | _ _+_ |
  3. Προβολή δεσμεύσεων που υπάρχουν μόνο σε υποκατάστημα ή κύρια: | _+_ |

Διαφορές μεταξύ δύο ετικετών

Όπως μπορείτε να δείτε το ιστορικό μεταξύ των υποκαταστημάτων χρησιμοποιώντας το ref1..ref2 σύνταξη, μπορείτε επίσης να δείτε το ιστορικό μεταξύ των ετικετών με τον ίδιο τρόπο. Εξάλλου, τόσο οι ετικέτες όσο και οι κλάδοι είναι τύποι αναφοράς.

git log --oneline origin/branch..origin/main

Εάν προετοιμάζετε σημειώσεις έκδοσης για ένα μεγαλύτερο έργο, git shortlog θα πρέπει να είναι το πρώτο σας λιμάνι κλήσης. Παράγει μια λίστα συγγραφέων με δεσμευμένα θέματα δίπλα τους. Μπορείτε να του δώσετε ένα εύρος αναφοράς για να περιορίσετε το ιστορικό με παρόμοιο τρόπο στο git log:

git log --oneline origin/ main ..origin/ branch

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

Αναθεωρήστε το παρελθόν με το Git Log

Το Git log είναι μια περίπλοκη εντολή, αλλά μπορείτε να χρησιμοποιήσετε πολύ από τις πιο βασικές επιλογές του. Η περιήγηση στο ιστορικό ενός αποθετηρίου είναι ένας εξαιρετικός τρόπος για να καταλάβετε πόσο συχνά συμβαίνουν αλλαγές και πόσοι άνθρωποι τις κάνουν. Μόλις κατανοήσετε καλά την ιστορία ενός έργου, θα είστε σε εξαιρετική θέση να συνεισφέρετε μόνοι σας σε αυτό.

ο υπολογιστής/συσκευή σας πρέπει να επισκευαστεί 0xc00000e
Μερίδιο Μερίδιο Τιτίβισμα ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ Λάβετε μέρος στην τάση κοινωνικής κωδικοποίησης και συμβάλλετε στα αποθετήρια GitHub

Θέλετε να ασκήσετε τους μύες κωδικοποίησης και να βοηθήσετε έργα ανοιχτού κώδικα; Δείτε πώς μπορείτε να συνεισφέρετε στο GitHub.

Διαβάστε Επόμενο
Σχετικά θέματα
  • Προγραμματισμός
  • GitHub
  • Συμβουλές κωδικοποίησης
Σχετικά με τον Συγγραφέα Μπόμπι Τζακ(Δημοσιεύθηκαν 58 άρθρα)

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

Περισσότερα από τον Bobby Jack

Εγγραφείτε στο newsletter μας

Εγγραφείτε στο ενημερωτικό μας δελτίο για τεχνικές συμβουλές, κριτικές, δωρεάν ebooks και αποκλειστικές προσφορές!

Κάντε κλικ εδώ για εγγραφή