Я не знаю встроенного способа сделать это.
Предполагая, что вы находитесь на ветви 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)))