No conozco una forma integrada de hacer esto.
Suponiendo que está en la rama A, otro enfoque sería diferenciar la rama B ( d r ..B), y luego mover el punto al archivo que le interesa. Al presionar ase aplicarán esos cambios al árbol de trabajo (en lugar del índice).
Tengo un comando en mi configuración para restablecer o retirar un archivo de una revisión, pero, en su estado actual, no se ajusta exactamente a lo que está pidiendo porque no ofrecerá una buena revisión predeterminada cuando esté en Revisión Magit modo.
(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)))