मैं विंडोज़ पर गिट के साथ काम कर रहा हूं, और मेरे पास मेरे रेपो में एक फाइल है, "foo.txt" कहें। आज मैं इस फ़ाइल को "Foo.txt" (अपरकेस) में बदलना चाहता था। जैसा कि this SO question में सुझाया गया है, मैंने git mv -f foo.txt Foo.txt
का उपयोग किया, जिसने वांछित परिणाम उत्पन्न किया। मैं को मेरे रेपो में बदलाव करने के लिए आगे बढ़ गया।
संपादित करें: मैं इसे स्थायी परिवर्तन करना चाहता हूं, और फिर भी इस परिवर्तन को पूर्ववत करने वाले चेकआउट करने में सक्षम हूं। आसपास मैंने पाया मेरी .git/config
फ़ाइल निम्न सेटिंग थी किविंडोज़ पर गिट: फ़ाइल का नाम बदलने के बाद शाखा स्विच नहीं कर सकता (केवल बदले गए मामले)
# I'm on branch1
git checkout branch2
Aborting
error: The following untracked working tree files would be overwritten by checkout:
Foo.txt
Please move or remove them before you can switch branches.
कुछ poking के बाद:
[core]
ignorecase=false
को यह बदलने
हालांकि, उस के बाद मैं शाखा स्विच करने के लिए कोशिश कर रहा पर एक त्रुटि का सामना करना पड़ा सच इस मुद्दे को ठीक करने लगता है और मुझे शाखाओं के बीच सामान्य के रूप में बदलने की अनुमति देता है।
तो इस संबंध में, मैं जानना चाहूंगा:
- वहाँ इस सेटिंग का कोई प्रतिकूल प्रभाव है? क्या यह हमेशा विंडोज़ पर सच होना चाहिए? क्या होगा यदि मैं अन्य देवताओं के साथ काम कर रहा हूं और उनके पास समान मूल्य सेट नहीं है?
- क्या इस सेटिंग को बदलने के बिना फ़ाइल का नाम बदलने का कोई और तरीका है?
- यह पहली जगह क्यों होता है? जब मैंने परिवर्तन किया, तो गिट ने सही ढंग से पहचाना कि फाइल वास्तव में बदल दी गई थी (एक फ़ाइल को हटाया नहीं था और फिर एक और जोड़ें)। तो जब मैंने शाखाओं को स्विच करने की कोशिश की तो वास्तव में क्या हुआ?
धन्यवाद!
इसका मतलब यह होगा कि जब भी मैं शाखा को बदलना चाहता हूं, तब तक मैं फ़ाइल को हटाना चाहता था, अब तक हमेशा तक। सही? ऐसा लगता है कि असुविधाजनक ... – avivr
क्या आपने वास्तव में इसे आजमाया था? मेरे मामले में यह काम करता था, लेकिन मैं दावा नहीं करूँगा कि मैं आपकी स्थिति को पूरी तरह से पुन: पेश कर सकता हूं – bigge
हां, मैंने कम से कम यह मान लिया कि मैं आपको सही ढंग से समझ गया हूं। मैंने फ़ाइल को गिट के साथ बदल दिया, फिर परिवर्तन किया। फिर मैंने फ़ाइल को हटा दिया (बस 'आरएम' के साथ) और इसे पुनर्स्थापित करने के लिए' गिट चेकआउट 'का उपयोग किया। उसके बाद, शाखा बदलते समय एक ही त्रुटि। – avivr