ลง kdiff3 สำหรับ Git mergetool ใน Mac

ปกติเวลาเราใช้ mergetool ของ git ที่มีมามักจะเป็น opendiff ซึ่งจะค่อนข้างใช้งานยากเวลาที่เราต้องแก้ conflict  ตัวอย่างเช่น เรามีไฟล์ที่เกิด conflict จากการ pull เป็น README.md

เวลาเกิด conflict

ทีนี้เวลาจะ แก้ config เราจะใช้คำสั่ง git mergetool เราจะได้ opendiff เป็น default

git mergetool ได้ opendiff เป็น default

เมื่อเรากด enter จะได้หน้าตาแบบนี้

opendiff

จะเห็นว่าการเลือกเอาของจากฝั่งซ้ายหรือขวา หรือทั้งคู่นั้นทำได้ยาก และไม่มีภาพของผลลัพธ์ให้เห็น เราต้องนึกเอาเอง และเราไม่สามารถแก้ไขโดยการพิมพ์ได้ (เช่น ต้องการบรรทัดแรกเป็น learning Git sandbox) เราต้องแก้ไขเองหลังจาก merge แล้ว ซึ่งถ้าเราใช้ kdiff3 เราจะได้หน้าตาเวลา merge ดังนี้

kdiff3จากตัวอย่างจะเห็นว่า เราสามารถเลือกได้ว่าจะเอาข้อความจากฝั่งไหน หรือจะพิมพ์แก้ไขไปเลยก็ได้ อย่างตัวอย่างนี้ บรรทัดแรก เราเปลี่ยนไปเลย ไม่ได้ใช้ทั้งของที่อยู่บนเครื่องตัวเอง และที่ pull ลงมา ส่วนบรรทัดอื่น ๆ เราใช้ของจากไฟล์  B (ช่องตรงกลาง) เมื่อเรากดบันทึก เราก็จะได้ไฟล์ตามที่เห็นในช่องด้านล่างเลย

การตั้ง kdiff3 เป็น default

  • ให้ install kdiff3 ก่อนโดยดาวน์โหลดจากที่นี่ http://kdiff3.sourceforge.net/
  • หลังจาก install เสร็จแล้วให้พิมพ์ตั้งค่าดังนี้
    $ git config --global merge.tool kdiff3
    $ git config --global mergetool.kdiff3.path /Applications/kdiff3.app/Contents/MacOS/kdiff3
    

อ้างอิง:
GIT Mergetool Config on Mac OSX

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s