คุณอาจต้องการที่จะลองเพียงแค่เปิดไฟล์ขัดแย้งและทำsmerge-mode M-xsmerge-modeRETมันจะเน้นภูมิภาคที่ขัดแย้งทั้งหมด นอกจากนี้ยังเพิ่ม keybindings ได้อย่างง่ายดายแก้ปัญหาความขัดแย้งที่ปรึกษา Documenation มันC-hfsmerge-modeRETรู้ว่าพวกเขา
คำนำหน้าเริ่มต้น
ฉันพบว่าคำนำหน้าเริ่มต้นสำหรับความsmerge-mode C-c^ยุ่งยากดังนั้นฉันจึงเปลี่ยนเป็น C-cv
(setq smerge-command-prefix "\C-cv")
ปุ่มลัดที่สำคัญ
สำหรับฉันการผูกที่สำคัญที่สุดคือ:
smerge-nextผูกไว้เพื่อsmerge-command-prefixnย้ายไปยังความขัดแย้งต่อไป
smerge-previousผูกไว้เพื่อsmerge-command-prefixpย้ายไปยังความขัดแย้งก่อนหน้า
smerge-keep-currentผูกไว้เพื่อsmerge-command-prefixRETรักษาเวอร์ชันที่เคอร์เซอร์เปิดอยู่
smerge-keep-mineผูกพันกับsmerge-command-prefixmการเปลี่ยนแปลงของคุณ
smerge-keep-otherผูกพันกับsmerge-command-prefixoการเปลี่ยนแปลงอื่น ๆ
smerge-ediffผูกไว้เพื่อsmerge-command-prefixEเริ่มเซสชัน ediff เพื่อรวมความขัดแย้ง สิ่งนี้เหมือนกับvc-resolve-conflicts(ขอบคุณ @phils และ @Malabarba สำหรับการชี้เรื่องนี้)
เปิดใช้งานโหมด smerge โดยอัตโนมัติ
อัปเดต: ข้อมูลต่อไปนี้เกี่ยวข้องเฉพาะกับรุ่น Emacs ก่อนหน้า25.1นี้อาจทำให้เกิดปัญหากับรุ่นต่อ ๆ ไปได้ที่https://github.com/magit/magit/magit/issues/3897
นอกจากนี้คุณอาจสนใจเปิดใช้งานโดยอัตโนมัติsmerge-modeเมื่อไปที่ไฟล์ / บัฟเฟอร์ด้วยเครื่องหมายข้อขัดแย้งคุณสามารถใช้สิ่งต่อไปนี้เพื่อให้บรรลุสิ่งนี้
(defun my-enable-smerge-maybe ()
(when (and buffer-file-name (vc-backend buffer-file-name))
(save-excursion
(goto-char (point-min))
(when (re-search-forward "^<<<<<<< " nil t)
(smerge-mode +1)))))
(add-hook 'buffer-list-update-hook #'my-enable-smerge-maybe)
โปรดทราบว่าฉันกำลังใช้งานอยู่buffer-list-update-hookและไม่ใช่find-file-hookเพราะหลายครั้งที่ฉันได้รับข้อขัดแย้งในบัฟเฟอร์ซึ่งเปิดใช้แล้วใน emacs ซึ่งกรณีfind-file-hookนี้ไม่มีความช่วยเหลือ
ตรวจสอบวิธีการอื่นที่กล่าวถึงในคำตอบนี้ด้วย
eไฟล์ที่แสดงว่าขัดแย้งกัน Magit จะเปิดตัวediffเพื่อทำการผสานและแจ้งให้คุณทราบภายหลังเพื่อยืนยันการเปลี่ยนแปลงของคุณจากนั้นคุณสามารถเรียกใช้ไฟล์ที่ผสาน