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 a
se 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)))