เมื่อฉันทำการแก้ไขข้อขัดแย้งผสานกับ Kdiff3 (และเครื่องมือการผสานอื่น ๆ ที่ฉันลอง) ฉันสังเกตว่าการแก้ไข*.origไฟล์ถูกสร้างขึ้น มีวิธีที่จะไม่สร้างไฟล์พิเศษหรือไม่?
เมื่อฉันทำการแก้ไขข้อขัดแย้งผสานกับ Kdiff3 (และเครื่องมือการผสานอื่น ๆ ที่ฉันลอง) ฉันสังเกตว่าการแก้ไข*.origไฟล์ถูกสร้างขึ้น มีวิธีที่จะไม่สร้างไฟล์พิเศษหรือไม่?
คำตอบ:
ทางออกที่เป็นไปได้จากgit config:
git config --global mergetool.keepBackup false
หลังจากทำการผสานไฟล์ต้นฉบับที่มีตัวทำเครื่องหมายความขัดแย้งสามารถบันทึกเป็นไฟล์ที่มี
.origนามสกุล
หากตัวแปรนี้ถูกตั้งค่าfalseเป็นไฟล์นี้จะไม่ถูกสงวนไว้
ค่าเริ่มต้นเป็นtrue(เช่นเก็บไฟล์สำรองข้อมูล)
ที่ถูกทางเลือกที่ไม่เพิ่มหรือละเว้นไฟล์เหล่านั้นได้รับการแนะนำในเรื่องนี้บทความ gitguru ,
git mergetoolบันทึกเวอร์ชันผสานไฟล์ที่ขัดแย้งกันด้วย.origส่วนต่อท้าย“”
ตรวจสอบให้แน่ใจที่จะลบมันก่อนที่จะเพิ่มและการกระทำการผสานหรือเพิ่มที่คุณ*.orig.gitignore
Berikแนะนำในความคิดเห็นที่จะใช้:
find . -name \*.orig
find . -name \*.orig -delete
Charles Baileyให้คำแนะนำในคำตอบของเขาให้ระวังการตั้งค่าเครื่องมือ diff ภายในซึ่งสามารถสร้างไฟล์สำรองข้อมูลเหล่านั้นได้
.bakตามที่กล่าวไว้ในคู่มือ )ดังนั้นคุณต้องรีเซ็ตการตั้งค่าเหล่านั้นด้วย
git config --global mergetool.keepBackup falseแก้ไขเพื่อ P4Merge บน Mavericks 10.9.2 ขอบคุณ :)
keepBackup = falseภายใต้[mergetool]ไม่อยู่ภายใต้[mergetool "BeyondCompare4"]หรือเครื่องมือผสานภาพใด ๆ
คุณต้องใช้ความระมัดระวังเล็กน้อยkdiff3ในgit mergetoolการกำหนดค่าให้บันทึก.origไฟล์ระหว่างการรวมพฤติกรรมเริ่มต้นสำหรับkdiff3คือการบันทึก.origไฟล์สำรองgit mergetoolไว้ด้วย
คุณต้องตรวจสอบให้แน่ใจว่าการmergetoolสำรองข้อมูลถูกปิด:
git config --global mergetool.keepBackup false
และการตั้งค่าของ kdiff3 นั้นไม่ได้สร้างการสำรองข้อมูล:
Configure/Options => Directory Merge => Backup Files (*.orig)
Configure/Options => Directory Merge => Backup Files (*.orig)ช่วยกำจัดไอโอแปลก ๆ , klauncher «»โปรโตคอลที่ไม่รู้จักและไม่สามารถสร้างข้อผิดพลาด. orig ได้ ขอบคุณ
git config --global mergetool.keepBackup falseต้องตั้งค่า?
เพื่อให้ชัดเจนคำสั่ง git ที่ถูกต้องคือ:
git config --global mergetool.keepBackup false
คำตอบอื่น ๆ ทั้งสองมีคำผิดในบรรทัดคำสั่งที่จะทำให้มันล้มเหลวหรือทำงานไม่ถูกต้อง
ตัวเลือกในการบันทึกไฟล์. orig สามารถปิดใช้งานได้โดยการกำหนดค่า KDiff3

ฉันใช้สิ่งนี้เพื่อล้างไฟล์ทั้งหมดที่ลงท้ายด้วย ".orig":
function git-clean-orig {
git status -su | grep -e"\.orig$" | cut -f2 -d" " | xargs rm -r
}
หากคุณเป็นแมวที่น่ากลัว :) คุณสามารถปล่อยส่วนสุดท้ายออกไปเพียงเพื่อแสดงรายการเหล่านั้น (หรือออก-rหากคุณต้องการอนุมัติการลบแต่ละรายการ):
function git-show-orig {
git status -su | grep -e"\.orig$" | cut -f2 -d" "
}
ฉันแค่ใช้คำสั่ง
git clean -n *.orig
ตรวจสอบเพื่อให้แน่ใจว่าไฟล์ที่ฉันต้องการลบเท่านั้นที่มีอยู่ในรายการ
git clean -f *.orig
นอกเหนือจากคำตอบที่ถูกต้องที่นำเสนอเป็นวิธีแก้ปัญหาระยะยาวแล้วคุณสามารถใช้ git เพื่อลบไฟล์ที่ไม่จำเป็นทั้งหมดได้เพียงครั้งเดียวสำหรับคุณด้วยgit clean -fคำสั่ง แต่ใช้git clean --dry-runก่อนเพื่อให้แน่ใจว่าไม่มีสิ่งใดเกิดขึ้นโดยไม่ตั้งใจ
สิ่งนี้มีประโยชน์ในการใช้ทดสอบการทำงานของ Git ผ่านสคริปต์เฉพาะสำหรับ OS / shell ของคุณเพื่อลบไฟล์
หรือเพียงแค่เพิ่ม
* .orig
สู่ gitignore ทั่วโลกของคุณ
git config --global mergetool.keepBackup false
สิ่งนี้น่าจะใช้ได้กับ Beyond Compare (ในฐานะ mergetool) เช่นกัน
ของ windows:
Win/Users/HOME/.gitconfigชุดไฟล์mergetool.keepTemporaries=falsegit/libexec/git-core/git-mergetoolในฟังก์ชั่นcleanup_temp_files()เพิ่มrm -rf -- "$MERGED.orig"ภายในบล็อกอื่น