Мені невідомий вбудований спосіб зробити це.
Якщо припустити, що ви перебуваєте у гілці A, іншим підходом буде розмежування гілки B ( d r ..B
), а потім переміщення точки до файла, який вас цікавить. Натискання a
застосовуватиме ці зміни до робочого дерева (а не до індексу).
У моїй конфігурації у мене є команда скинути або зняти файл із версії, але в його нинішньому стані він не відповідає точно тому, що ви просите, тому що він не запропонує хорошої версії за замовчуванням у програмі Magit Revision режим.
(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)))