Pertanyaan Apakah ada perintah git cepat untuk melihat versi file lama?


Apakah ada perintah di git untuk melihat (baik dibuang ke stdout, atau masuk $PAGER atau $EDITOR) versi tertentu dari file tertentu?


1191
2017-12-03 19:31


asal


Jawaban:


Kamu dapat memakai git show:

$ git show REVISION:path/to/file

Ganti REVISI dengan revisi Anda yang sebenarnya (bisa berupa Git commit SHA, nama tag, nama cabang, nama commit relatif, atau cara lain apa pun untuk mengidentifikasi commit di Git)

Misalnya, untuk melihat versi file src/main.c dari 4 komit yang lalu, gunakan:

$ git show HEAD~4:src/main.c

Perhatikan bahwa path berasal dari akar repositori kecuali dimulai dengan ./ atau ../ untuk menunjukkan jalur relatif. Untuk informasi lebih lanjut, lihat halaman manual untuk git-show.


1330
2017-12-03 19:46



Melakukan hal ini menurut tanggal terlihat seperti ini:

git show HEAD@{2013-02-25}:./fileInCurrentDirectory.txt

Perhatikan itu HEAD@{2013-02-25} berarti "di mana KEPALA berada di 2013-02-25" dalam repositori ini (menggunakan reflog itu), bukan "commit terakhir sebelum 2013-02-25 di cabang ini dalam sejarah".


208
2018-03-07 17:05



Jika Anda suka GUI, Anda dapat menggunakan gitk:

  1. mulai gitk dengan:

    gitk /path/to/file
    
  2. Pilih revisi di bagian atas layar, mis. berdasarkan uraian atau tanggal. Secara default, bagian bawah layar menunjukkan diff untuk revisi itu, (sesuai dengan tombol radio "tambalan").

  3. Untuk melihat file untuk revisi yang dipilih:

    • Klik pada tombol radio "pohon". Ini akan menunjukkan akar dari pohon file pada revisi itu.
    • Tarik ke bawah ke file Anda.

98
2017-12-19 18:21



Anda juga dapat menentukan commit hash (Sering juga disebut commit ID) dengan git show perintah.


Pendeknya

git show <commitHash>:/path/to/file


Selangkah demi selangkah

  1. Tampilkan log dari semua perubahan untuk file yang diberikan dengan git log /path/to/file
  2. Dalam daftar perubahan yang ditampilkan, ini menunjukkan commit hash seperti commit 06c98... (06c98 ... menjadi hash komit)
  3. Salin commit hash
  4. Jalankan perintahnya git show <commitHash>:/path/to/file menggunakan commit hashlangkah 3 & path/to/file langkah 1.

catatan: menambahkan ./ ketika menentukan jalur relatif tampaknya penting, yaitu git show b2f8be577166577c59b55e11cfff1404baf63a84:./flight-simulation/src/main/components/nav-horiz.html.


70
2017-11-03 11:21



Sebagai tambahannya Jim HunzikerJawabannya,

Anda dapat mengekspor file dari revisi seperti,

git show HEAD@{2013-02-25}:./fileInCurrentDirectory.txt > old_fileInCurrentDirectory.txt

Semoga ini membantu :)


29
2018-04-30 05:07



git log -p akan menunjukkan kepada Anda bukan hanya log commit tetapi juga diff dari setiap commit (kecuali menggabungkan commit). Kemudian Anda bisa menekan /, masukkan nama file dan tekan enter. tekan n atau p untuk pergi ke kejadian berikutnya / sebelumnya. Dengan cara ini Anda tidak hanya akan melihat perubahan dalam file tetapi juga informasi commit.


13
2018-05-06 20:02



Anda dapat menggunakan skrip seperti ini untuk membuang semua versi file untuk memisahkan file:

misalnya

git_dump_all_versions_of_a_file.sh path/to/somefile.txt

Ambil skrip di sini sebagai jawaban atas pertanyaan serupa lainnya


2
2017-10-30 17:01