Έχω διαγραφεί ένα αρχείο με Git και στη συνέχεια να δεσμευτεί, έτσι ώστε το αρχείο δεν είναι πλέον σε αντίγραφο εργασίας μου. Θέλω να δούμε τα περιεχόμενα αυτού του αρχείου, αλλά όχι να τα επαναφέρετε στην πραγματικότητα. Πως μπορώ να το κάνω?
Προβολή ένα διαγραμμένο αρχείο στο Git

git show HEAD^:path/to/file
Μπορείτε να χρησιμοποιήσετε μια ρητή δεσμευτούν αναγνωριστικό ή HEAD~n
να δείτε παλιότερες εκδόσεις ή εάν υπήρξε περισσότερες από μία δεσμευτούν από τη στιγμή που θα διαγραφεί.
Από τη στιγμή που δεν μπορούσε να θυμηθούμε την ακριβή διαδρομή, μπορείτε αντ 'αυτού να πάρει το SHA1 από το git ημερολόγιο τότε μπορείτε απλά να εκδώσει
git cat-file -p <sha1>
Εάν αυτό είναι ένα αρχείο που έχετε διαγράψει από λίγο καιρό και δεν θέλουν να κυνηγούν για την αναθεώρηση , μπορείτε να χρησιμοποιήσετε (το αρχείο είναι το όνομά του foo
σε αυτό το παράδειγμα? Μπορείτε να χρησιμοποιήσετε μια πλήρη διαδρομή):
git show $(git rev-list --max-count=1 --all -- foo)^:foo
Η rev-list
επίκληση αναζητά όλες τις αναθεωρήσεις του foo
, αλλά εμφανίζει μόνο μία. Από rev-list
τις λίστες με αντίστροφη χρονολογική σειρά, τότε αυτό που αναφέρει είναι η τελευταία αναθεώρηση που άλλαξε foo
, η οποία θα είναι η δεσμευτούν ότι διαγράφεται foo
. (Αυτό βασίζεται στην υπόθεση ότι git δεν επιτρέπει σε ένα διαγραμμένο αρχείο πρέπει να αλλάξει και όμως εξακολουθούν να διαγραφεί.) Δεν μπορείτε να χρησιμοποιήσετε μόνο την αναθεώρηση που rev-list
επιστρέφει ως έχει , διότι foo
δεν υπάρχει πλέον εκεί. Θα πρέπει να ρωτήσετε για το ένα λίγο πριν από το οποίο περιέχει την τελευταία αναθεώρηση του αρχείου, εξ ου και η ^
σε git show
.