Πώς μπορώ να δω το ιστορικό αλλαγών ενός μεμονωμένου αρχείου στο Git, με πλήρεις λεπτομέρειες σχετικά με το τι έχει αλλάξει;
Έχω φτάσει μέχρι:
git log -- [filename]
το οποίο μου δείχνει το ιστορικό των δεσμεύσεων του αρχείου, αλλά πώς μπορώ να δω το περιεχόμενο κάθε μίας από τις αλλαγές στο αρχείο;
Προσπαθώ να κάνω τη μετάβαση από το MS SourceSafe και αυτό συνήθιζε να είναι ένα απλό δεξί κλικ
→ show history
.
Μπορείτε να χρησιμοποιήσετε
git log -p filename
για να αφήσετε το git να δημιουργήσει τα μπαλώματα για κάθε καταγραφή.
Βλέπε
git help log
για περισσότερες επιλογές - μπορεί πραγματικά να κάνει πολλά ωραία πράγματα :) Για να λάβετε μόνο το diff για μια συγκεκριμένη δέσμευση μπορείτε να
git show HEAD
ή οποιαδήποτε άλλη αναθεώρηση με αναγνωριστικό. Ή χρησιμοποιήστε
gitk
για να περιηγηθείτε οπτικά στις αλλαγές.
Το git whatchanged -p filename
είναι επίσης ισοδύναμο με το git log -p filename
σε αυτή την περίπτωση.
Μπορείτε επίσης να δείτε πότε μια συγκεκριμένη γραμμή κώδικα μέσα σε ένα αρχείο άλλαξε με το git blame filename
. Αυτό θα εκτυπώσει ένα σύντομο αναγνωριστικό δέσμευσης, τον συγγραφέα, τη χρονοσφραγίδα και την πλήρη γραμμή κώδικα για κάθε γραμμή στο αρχείο.
Αυτό είναι πολύ χρήσιμο αφού έχετε βρει ένα σφάλμα και θέλετε να μάθετε πότε εισήχθη (ή ποιος έφταιγε).
Αν χρησιμοποιείτε το GUI του git (στα Windows) στο μενού Αποθετήριο μπορείτε να χρησιμοποιήσετε το "Visualize master's History". Επισημάνετε ένα commit στο επάνω παράθυρο και ένα αρχείο στο κάτω δεξιά και θα δείτε το diff για το συγκεκριμένο commit στο κάτω αριστερά.