เมื่อฉันทำการแก้ไขข้อขัดแย้งผสานกับ 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=false
git/libexec/git-core/git-mergetool
ในฟังก์ชั่นcleanup_temp_files()
เพิ่มrm -rf -- "$MERGED.orig"
ภายในบล็อกอื่น