Apakah mungkin untuk membuka revisi file tertentu di Emacs dengan Magit tanpa mengubah cabang saat ini?
Saya telah mengubah beberapa perubahan lokal menjadi revisi di mana fungsi yang diubah digantikan oleh fungsionalitas dalam file yang berbeda. Saya ingin membuka revisi lama dari perubahan saya di buffer terpisah sehingga saya dapat membandingkan perubahan berdampingan.
Solusi hacky saya saat ini adalah untuk menjalankan git show <branch pre-rebase>:file > old_file
dan kemudian terbuka old_file
di Emacs.
git-timemachine
tetapi karena kode saya telah ditata ulang saya tidak berpikir itu akan berfungsi karena kode lama bukan bagian dari sejarah cabang saat ini?Jawaban:
Anda dapat melihat file untuk revisi tertentu menggunakan M-x
magit-find-file
RET<filename>
RET.Atau Anda dapat pertama-tama melihat diff untuk komit dengan menekannya RET, menavigasi ke file di dalam diff, dan kemudian menekan RETlagi.
sumber
M-x magit-log-buffer-file
,, pindahkan baris ke komit yang diinginkan, kemudianM-x magit-find-file
. Maka nilai default adalah komit itu. Saya harus memberikan path ke file karena ini tidak diambil dari buffer log.magit-find-file
sendiri dari buffer kunjungan file dan kemudian ketik sajaRET
prompt kedua (file yang tepat ditawarkan sebagai default).Itu mungkin dilakukan dengan VC biasa (bawaan untuk Emacs), tanpa Magit. Ketik
C-x v ~
dan ketikkan versi yang Anda inginkan. Ia memahami tag dan hash SHA1, serta~1
sufiks dll yang biasa .sumber