ฉันไม่ได้ตระหนักถึงวิธีการที่จะทำเช่นนี้ในตัว
สมมติว่าคุณอยู่ที่สาขา A อีกวิธีหนึ่งก็คือ diff สาขา 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)))