ฉันจะเปลี่ยนชื่อไฟล์ในคอมไพล์ที่แตกต่างกันในแต่ละกรณีได้อย่างไร?


14

ในโครงการ git (Xcode) ของฉันฉันได้กำหนดชื่อไฟล์ด้วยตัวพิมพ์ที่ไม่เหมาะสม ตอนนี้ฉันไปลองเปลี่ยนชื่อ แต่เมื่อฉันยืนยันฉันจะได้รับ:

ร้ายแรง: จะไม่เพิ่มชื่อแทนไฟล์ 'MyProject / MyFile.h' ('MyProject / MyFilE.h' มีอยู่ในดัชนีแล้ว)

ฉันแน่ใจว่าเป็นเพราะ git ไม่ได้ถูกใช้เพื่อรันบนระบบไฟล์แบบ case-insensitive case-insensitive เช่น HFS + แต่ฉันจะไปรอบ ๆ มันได้อย่างไร

ฉันพยายามเปลี่ยนชื่อไฟล์ทั้งสองเป็นอย่างอื่นและยืนยันว่าแล้วเปลี่ยนชื่อไฟล์กลับเป็นสิ่งที่ฉันต้องการ แต่ก็ยังคงล้มเหลว (พร้อมข้อความแสดงข้อผิดพลาดเดียวกัน)

คำตอบ:


21

ตามที่ถูกถามและตอบในstackoverflowมีวิธีที่ง่ายกว่าในการทำสิ่งนี้โดยไม่เกี่ยวข้องกับการสร้างระบบไฟล์ใหม่ในไฟล์อิมเมจดิสก์:

ย้ายไฟล์ที่มีอยู่ของคุณไปข้างหน้าคอมมิตย้ายจากนั้นย้ายกลับโดยใช้เคสที่คุณต้องการให้มันดูแลและคอมมิชชัน เสร็จสิ้น

ตัวอย่าง:

mv foo foo2
git add -A
git commit -m "renaming"
mv foo2 FOO
git add -A
git commit --amend -m "renamed foo to FOO"

เพื่อประโยชน์ในการหลีกเลี่ยงการเน่าลิงก์เรามักจะขอให้คุณคัดลอกส่วนที่เกี่ยวข้องของคำตอบที่อยู่เบื้องหลังลิงก์ไปยังเนื้อหาของคำตอบ
Ian C.

ขอบคุณ @ ian-c ฉันหวังว่ากฎนี้จะไม่ใช้กับลิงก์ภายในตระกูล stackexchange
mspasov

1
ใช่ฉันได้สิ่งที่คุณพูด แต่ความสอดคล้องก็ดี
Ian C.

แปลก. ฉันคิดในแง่บวกฉันลองทำสิ่งนี้ แต่วันนี้มันใช้ได้ ขอบคุณ
เคน

2

ฉันยังไม่พบวิธีในการแก้ไขปัญหานี้โดยตรงในระบบไฟล์ที่ไม่ตรงตามตัวพิมพ์เล็กและใหญ่คุณจำเป็นต้องใช้ระบบไฟล์ที่เล็กและใหญ่

โชคดีที่ Mac OS X มีการสนับสนุนการติดตั้งดิสก์เสมือนที่ดีดังนั้นคุณสามารถรับ (ทำ) ระบบแฟ้มที่เล็กและใหญ่ (ชั่วคราว) บนคอมพิวเตอร์ของคุณ

เปิด Disk Utility สร้างรูปภาพใหม่และตั้งค่าฟิลด์ "Format" เป็นหนึ่งใน "Mac OS Extended" นอกจากนี้ให้แน่ใจว่าคุณทำให้มันใหญ่พอสำหรับที่เก็บของคุณ

ติดตั้งดิสก์ใหม่ตรวจสอบที่เก็บ git ลงไปตรวจสอบให้แน่ใจว่าไฟล์ที่มีชื่ออย่างถูกต้องนั้นมีเนื้อหาที่ถูกต้องและลบอีกอัน ยอมรับและผลักดันการเปลี่ยนแปลงของคุณจากนั้นคุณสามารถยกเลิกการต่อเชื่อมอิมเมจของดิสก์และลบได้

หากคุณไม่มีเซิร์ฟเวอร์ระยะไกลที่จะทำการคัดลอก (เช่นคุณกำลังเรียกใช้ repo git ภายในฮาร์ดไดรฟ์ของคุณ) โปรดจำไว้ว่าคุณสามารถโคลนโดยตรงจากที่เก็บ git อื่น ๆ บนฮาร์ดไดรฟ์ของคุณ


1
นั่นคือแรงงานเข้มข้นมาก คุณสามารถทำได้โดยไม่ต้องหมุนระบบไฟล์ใหม่ในไฟล์อิมเมจดิสก์
Ian C.

1

ขั้นตอนที่ 1 : เพียงแค่เปลี่ยนชื่อไฟล์ด้วยชื่อที่แตกต่างกันมากกว่า (เฉพาะกรณีตัวอักษร) เพียงแค่เลือกชื่อสุ่มที่แตกต่างจากชื่อปัจจุบันและจากชื่อที่คุณต้องการให้

ขั้นตอนที่ 2 : การกระทำไฟล์นี้โดย GUI (Xcode) หรือ CLI (เทอร์มิ)

ขั้นตอนที่ 3 : เปลี่ยนชื่อไฟล์ตามที่คุณต้องการเปลี่ยนชื่อในตอนแรก ดังนั้นตอนนี้จะมีความแตกต่างมากกว่ากรณีที่มีชื่อก่อนหน้านี้

ขั้นตอนที่ 4 : การกระทำแฟ้มที่เปลี่ยนชื่ออีกครั้ง

ไม่จำเป็นต้องใช้เทคนิคเวทมนต์ และคุณสามารถเลือกที่จะกระทำโดย GUI หรือ CLI


0

ฉันใช้ sourcetree โดยไม่ต้องใช้ CLI มีขั้นตอนง่าย ๆ ในการทำเช่นนี้ เปลี่ยนชื่อไฟล์เป็นชื่ออื่น (เช่น Index.php เป็น Index_old.php) จากนั้นคอมมิทและพุช .. เปลี่ยนชื่อเป็นชื่อที่ต้องการ (index.php) อีกครั้งจากนั้นคอมมิทและส่ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.