मुझे लगता है कि वांछित नाम के साथ नई निर्देशिका में नाम बदलने के लिए निर्देशिका को कॉपी करने के लिए काम करना चाहिए, और पुरानी निर्देशिका को हटाना होगा , और git add
, git commit
और push
सब कुछ। लेकिन क्या यह सबसे अच्छा तरीका है?
मुझे लगता है कि वांछित नाम के साथ नई निर्देशिका में नाम बदलने के लिए निर्देशिका को कॉपी करने के लिए काम करना चाहिए, और पुरानी निर्देशिका को हटाना होगा , और git add
, git commit
और push
सब कुछ। लेकिन क्या यह सबसे अच्छा तरीका है?
जवाबों:
मूल नाम (या चाल):
git mv <old name> <new name>
केस संवेदी नाम- उदा। से casesensitive
करने के लिए CaseSensitive
-आप एक दो चरणों का उपयोग करना चाहिए:
git mv casesensitive tmp
git mv tmp CaseSensitive
( Git में केस सेंसिटिविटी के बारे में ... )
... इसके बाद कमिट और पुश एक रीपो गिट में डायरेक्टरी का नाम बदलने का सबसे सरल तरीका होगा।
casesensitive
के लिए CaseSensitive
: आप इस तरह से कर सकते हैं git mv casesensitive Temp
और फिर git mv Temp CaseSensitive
git rm -rf --cached path/to/your/directories
उसे फिर से जोड़ें और कमिट करें
git config core.ignorecase false
और फिर उत्तराधिकार में कमांड चलाना होगा या फिर, दूसरे भाग के लिए मुझे एक source is empty
त्रुटि मिलेगी ।
यदि आपको यह त्रुटि मिलती है: घातक: 'फ़ोल्डरनाम' का नाम बदलना विफल: अमान्य तर्क
इसे इस्तेमाल करे:
git mv foldername tempname && git mv tempname folderName
git mv foldername tempname
और git mv tempname folderName
, जिसे विंडोज पर काम करना चाहिए।
1. एक फ़ोल्डर का नाम पुराने फ़ोल्डर से newfolder में बदलें
git mv oldfolder newfolder
2. यदि नया फ़ोल्डर पहले से ही आपके भंडार में है और आप इसे ओवरराइड और उपयोग करना चाहते हैं: - बल
git mv -f oldfolder newfolder
Git mv के साथ नाम बदलने के बाद अनुक्रमणिका में परिवर्तन जोड़ना और उन्हें कमिट करना न भूलें।
3. केस असंवेदनशील फ़ाइल सिस्टम पर फ़ोल्डरनाम का नामकरण फ़ोल्डरनाम के लिए
एक सामान्य mv कमांड (git mv नहीं) के साथ सरल नामकरण git से फ़ाइल परिशिष्ट के रूप में पहचाना नहीं जाएगा। यदि आप इसे निम्न पंक्ति की तरह 'git mv' कमांड के साथ आजमाते हैं
git mv foldername folderName
यदि आप एक असंवेदनशील फाइलसिस्टम का उपयोग कर रहे हैं, जैसे आप मैक पर हैं और आपने इसे संवेदनशील होने के लिए कॉन्फ़िगर नहीं किया है, तो आपको इस तरह एक त्रुटि संदेश का अनुभव होगा:
घातक: 'फ़ोल्डरनाम' का नाम बदलना विफल: अमान्य तर्क
और यहाँ है कि आप इसे काम करने के लिए क्या कर सकते हैं: -
git mv foldername tempname && git mv tempname folderName
यह फ़ोल्डर को पूरी तरह से अलग फ़ोल्डरनाम में बदलकर नाम बदलने की प्रक्रिया को विभाजित करता है। इसे अलग फ़ोल्डरनाम में बदलने के बाद अंत में फ़ोल्डर को नए फ़ोल्डर में बदला जा सकता है। उन 'gv mv' के बाद, फिर से, परिवर्तनों को जोड़ना और प्रतिबद्ध करना न भूलें। हालांकि यह शायद एक सुंदर तकनीक नहीं है, यह पूरी तरह से ठीक काम करता है। फाइलसिस्टम अभी भी पत्र मामलों के बदलाव को नहीं पहचान पाएगा, लेकिन इसे नए फ़ोल्डरनाम में बदलने के कारण git करता है, और यही हम चाहते थे :)
आप फ़ाइल सिस्टम का उपयोग करके निर्देशिका का नाम बदल सकते हैं। तब आप कर सकते हैं git rm <old directory>
और git add <new directory>
( सहायता पृष्ठ )। तब आप प्रतिबद्ध कर सकते हैं और धक्का दे सकते हैं।
Git यह पता लगाएगा कि सामग्री समान हैं और यह सिर्फ एक नाम बदलने की कार्रवाई है, और यह इतिहास में नाम बदलने के रूप में दिखाई देगा। आप जांच कर सकते हैं कि यह कमिट का उपयोग करने से पहले की स्थिति हैgit status
वेब एप्लिकेशन से मुझे लगता है कि आप नहीं कर सकते हैं, लेकिन आप Git Client में सभी फ़ोल्डरों का नाम बदल सकते हैं, यह आपकी फ़ाइलों को नए नामांकित फ़ोल्डरों में ले जाएगा, कमिट करने और रिमोट रिपॉजिटरी पर पुश करने के लिए।
मेरे पास एक समान मुद्दा था: मुझे अलग-अलग फ़ोल्डरों को अपरकेस से लोअरकेस (जैसे एबीसी -> एबीसी) का नाम बदलना पड़ा, मैंने सभी फ़ोल्डरों को एक डमी नाम (जैसे 'abc___') से बदल दिया है और रिमोट रिपॉजिटरी के लिए प्रतिबद्ध होने के बाद, कि मैंने सभी फोल्डर का नाम बदलकर लोअरकेस (abc) के साथ मूल नाम कर दिया और यह उन्हें ले लिया!
मैंने इसे दो चरणों में हल किया। एमवी कमांड का उपयोग करके फ़ोल्डर का नाम बदलने के लिए आपको ऐसा करने का अधिकार चाहिए, अगर आपके पास सही नहीं है तो आप इन चरणों का पालन कर सकते हैं। मान लीजिए कि आप मामले के प्रति संवेदनशील का नाम बदलना चाहते हैं।
चरण 1: एक्सप्लोरर से फ़ोल्डर (केसेंसिटिव) का नाम कुछ और के लिए बदलें। उदाहरण के लिए फ़ोल्डर 1 के लिए असंवेदनशील नाम बदलें यह परिवर्तन करें।
चरण 2: इस नए नामित फ़ोल्डर (फ़ोल्डर 1) का नाम अपेक्षित केस संवेदनशील नाम (केसेंसिटिव) के लिए बदलें। फ़ोल्डर 1 का नाम बदलें। यह परिवर्तन करें।
संवेदनशील नाम बदलने के लिए, git mv somefolder someFolder
मेरे लिए पहले काम कर चुका है , लेकिन किसी कारण से आज नहीं हुआ। तो एक समाधान के रूप मैं एक नया फ़ोल्डर बनाया temp
, की सभी सामग्री ले जाया गया somefolder
में temp
, नष्ट कर दिया somefolder
, प्रतिबद्ध temp
, तो बनाई someFolder
, की सभी सामग्री ले जाया गया temp
में someFolder
, नष्ट कर दिया temp
, प्रतिबद्ध और धक्का दिया someFolder
और यह काम किया! के रूप someFolder
में दिखाता है ।
बस फ़ोल्डर का नाम बदलें। git एक "कंटेंट-ट्रैकर" है, इसलिए SHA1 हैश एक ही है और git जानता है, कि आप इसका नाम बदलते हैं। केवल एक चीज जो बदलती है वह है वृक्ष-वस्तु।
rm <directory>
git add .
git commit