คุณอาจต้องการที่จะลองเพียงแค่เปิดไฟล์ขัดแย้งและทำsmerge-mode
M-xsmerge-mode
RETมันจะเน้นภูมิภาคที่ขัดแย้งทั้งหมด นอกจากนี้ยังเพิ่ม keybindings ได้อย่างง่ายดายแก้ปัญหาความขัดแย้งที่ปรึกษา Documenation มันC-hfsmerge-mode
RETรู้ว่าพวกเขา
คำนำหน้าเริ่มต้น
ฉันพบว่าคำนำหน้าเริ่มต้นสำหรับความ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
เพื่อทำการผสานและแจ้งให้คุณทราบภายหลังเพื่อยืนยันการเปลี่ยนแปลงของคุณจากนั้นคุณสามารถเรียกใช้ไฟล์ที่ผสาน