Tôi không biết một cách dựng sẵn để làm điều này.
Giả sử bạn đang ở chi nhánh A, một cách tiếp cận khác sẽ là khác chi nhánh B (d r ..B
), sau đó di chuyển điểm đến tệp bạn quan tâm. Nhấn a
sẽ áp dụng những thay đổi đó cho cây làm việc (thay vì chỉ mục).
Tôi có một lệnh trong cấu hình của mình để đặt lại hoặc kiểm tra tệp từ bản sửa đổi, nhưng, ở trạng thái hiện tại, nó không phù hợp với chính xác những gì bạn yêu cầu vì nó sẽ không cung cấp mặc định sửa đổi tốt khi trong Sửa đổi Magit chế độ.
(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)))