Saya tidak mengetahui cara builtin untuk melakukan ini.
Dengan asumsi Anda berada di cabang A, pendekatan lain adalah dengan diff cabang B ( d r ..B
), dan kemudian pindahkan titik ke file yang Anda minati. Menekan a
akan menerapkan perubahan tersebut ke pohon kerja (bukan indeks).
Saya memiliki perintah dalam konfigurasi saya untuk mengatur ulang atau checkout file dari revisi, tetapi, dalam kondisi saat ini, itu tidak sesuai persis dengan apa yang Anda minta karena itu tidak akan menawarkan standar revisi yang baik ketika di Magit Revision mode.
(defun km/magit-reset-file (rev file &optional checkout)
"Reset FILE from revision REV.
If prefix argument CHECKOUT is non-nil, checkout FILE from REV
instead.
\(git reset REV -- FILE)
\(git checkout REV -- FILE)"
(interactive
(let ((rev (magit-read-branch-or-commit "Revision")))
(list rev (magit-read-file-from-rev rev "File") current-prefix-arg)))
(magit-with-toplevel
(magit-run-git (if checkout "checkout" "reset")
rev "--" file)))