2010-10-13 31 views
51

मैं "Frameworks" से "frameworks" पर एक फ़ोल्डर का नाम बदलना चाहता था, लेकिन गिट मुझे नया लोअरकेस नाम जोड़ने नहीं देगा। मुझे लगता है कि यह फ़ाइल नाम केस असंवेदनशील व्यवहार करता है, है ना?गिट: फ़ाइल का नाम बदलें

एक git add frameworks/ -f मदद नहीं

+0

कौन सा ऑपरेटिंग सिस्टम? –

+0

मै मैकोज़ 10.6 –

उत्तर

97

आप कोशिश कर सकते हैं:

  • "git mv -f foo.txt Foo.txt" (ध्यान दें: इस no longer needed since git 2.0.1 है)
  • कॉन्फ़िग फ़ाइल में गलत पर ignorecase स्थापित करने के लिए।

लेकिन (उदाहरण के लिए Windows पर) के मामले के मुद्दे msysgit issue 228 में वर्णन किया गया है (फिर से: इस now -- June 2014 -- work with git 2.0.1 चाहिए)

वहाँ हमेशा में गलत पर ignorecase स्थापित करने के लिए एक विकल्प है कॉन्फ़िगरेशन फ़ाइल जो यूनिक्स को एनटीएफएस के शीर्ष पर गिट अर्थशास्त्र की तरह मजबूर करेगी।
Git इस व्यवहार का समर्थन करता है, लेकिन यह डिफ़ॉल्ट नहीं है - देखने के बिंदु से NTFS a.txt और A.txt एक ही बात कर रहे हैं - तो Git के रूप में अधिकांश उपयोगकर्ताओं

उम्मीद होती है कि बनाए रखने की कोशिश करता है एक बेहतर कामकाज के रूप में, आप

git mv foo.txt foo.txt.tmp && git mv foo.txt.tmp Foo.txt 

, जो डिस्क पर संग्रहीत फ़ाइल के मामले को भी बदल सकता है।

इस ब्लॉग पोस्ट illustrates the same issue on MacOs एक रिबेस दौरान:

मैक ओएस एक्स फाइल सिस्टम पर डिफ़ॉल्ट है कि वे केस-संवेदी हो रहा है। FFFFFF.gifffffff.gif जैसा ही है।

यदि आप फ़ाइल सिस्टम से हैं, तो फ़ाइल सिस्टम से, गिट इंडेक्स से नहीं, आपको दिमाग में, आप शाखा को प्रश्न में विलय कर सकते हैं, और फ़ाइल को पुनर्स्थापित कर सकते हैं जैसे कुछ भी नहीं हुआ। ,

mv oldname newname 
git add newname 
git rm oldname 

इसलिए यदि newname और oldname संघर्ष, तो आप उन्हें अलग करने के लिए (भले ही जरूरत है:

चरणों

बहुत सरल कर रहे हैं:

$ rm file/in/question.gif 
$ git merge trunk 

किसी भी तरह

, remember what git mv stands for यह केवल थोड़े समय के लिए है), इसलिए git mv foo.txt foo.txt.tmp && git mv foo.txt.tmp Foo.txt

+0

चलाता हूं मैंने पहले से ही 'गिट एमवी' की कोशिश की लेकिन मुझे 'घातक' नाम दिया: 'फ्रेमवर्क' का नाम बदलना असफल रहा: अवैध तर्क ' –

+0

@Erik: आपने जिस सटीक कमांड लाइन की कोशिश की थी? – VonC

+1

ठीक है 2 कदम 'git mv' काम किया था! –

1

मुझे एक ही समस्या थी और रिमोट रिपोज़ पर बदलने के लिए एक नया फ़ोल्डर नाम (अलग-अलग मामला) नहीं मिला। मैंने पाया कि सबसे आसान समाधान सिर्फ फाइल को रेपो से बाहर ले जाना और प्रतिबद्ध करना था। एक हटाने की कार्रवाई ट्रिगरिंग। फिर फिर से जोड़ें और जब मैंने जोड़ा, यह उचित मामले में आया।

2

यदि आप गिथब पर होस्ट करना चाहते हैं, तो आप उनकी वेबसाइट पर नाम बदलें का उपयोग कर सकते हैं। 5 फाइलों के लिए आवरण बदलना पड़ा और पाया कि यह वास्तव में अच्छा काम करता है।

संबंधित मुद्दे