git - वीएस में टीएफएस/जीआईटी मास्टर पर स्विच नहीं कर सकता क्योंकि वहां असामान्य परिवर्तन हैं




visual-studio tfs (8)

असामान्य परिवर्तन का अर्थ है कि आपने एक या अधिक फ़ाइलों को संशोधित किया है जो पहले से ही गिट में जोड़े गए हैं और उन परिवर्तनों को किसी प्रतिबद्धता में या आपके गिट स्टेश में "सहेजा नहीं गया" है।

जब आप शाखाओं के बीच स्विच करते हैं तो आपको असामान्य परिवर्तन करने की अनुमति नहीं है (नई फाइलें जिन्हें गिट में जोड़ा नहीं गया है) हालांकि अन्य शाखाओं में बदलाव आपके असामान्य परिवर्तनों को ओवरराइट कर सकते हैं।

मैं इस बात से अपरिचित हूं कि विजुअल स्टूडियो गिट के साथ कैसे एकीकृत करता है क्योंकि मैं PoshGit साथ PoshGit उपयोग करता हूं

आगे बढ़ने का तरीका यह है:

  • अपने परिवर्तन पूर्ववत करें
  • अपने परिवर्तनों को प्रतिबद्ध करें
  • या अपने परिवर्तनों को छूएं (बाधित वर्कफ़्लो अनुभाग देखें)।

मैंने visualstudio.com पर एक वीएस 2013 समाधान के लिए एक जीआईटी भंडार स्थापित किया है। जब मैं टीएफएस (जीआईटी मोड में) का उपयोग करने के आदी हो रहा था, तो भंडार बहुत अच्छा काम करता था।

तब मैंने खुद को शाखाओं से परिचित कराने का फैसला किया, इसलिए मैंने मास्टर की शाखा बनाई। मैंने इस शाखा में कुछ बदलाव किए हैं। मैंने समय के साथ परिवर्तन किए हैं और मेरे स्थानीय काम को visualstudio.com भंडार में धक्का देने के लिए एक सिंक किया है। यह सब काम करता है।

मेरी समस्या यह है कि मैंने किसी भी तरह मास्टर शाखा में वापस जाने की क्षमता खो दी है। मैं अपनी नई बनाई गई शाखा को मास्टर में विलय नहीं कर सकता। हर बार जब मैं मास्टर को शामिल करता हूं तो कुछ भी करने की कोशिश करता हूं मुझे वीएस में निम्न त्रुटि मिलती है:

मास्टर पर स्विच नहीं कर सकते क्योंकि असामान्य परिवर्तन हैं। शाखाओं को स्विच करने से पहले अपने परिवर्तनों को कम या पूर्ववत करें। विवरण के लिए आउटपुट विंडो देखें।

आउटपुट विंडो में कभी भी 'विवरण' नहीं होता है ...

यह संदेश क्या "असामान्य परिवर्तन" करता है? चूंकि मैं मास्टर शाखा में नहीं जा सकता, मेरे पास इसके किसी भी बदलाव को करने का कोई तरीका नहीं है (और न ही मुझे यकीन है कि मैं चाहता हूं?)। और वर्तमान (केवल अन्य) शाखा में मैं प्रतिबद्ध हूं और समन्वयित हूं।

मैं वास्तव में सिर्फ टीएफएस, जीआईटी और स्रोत नियंत्रण सीख रहा हूं। मैं इस समस्या से सुरक्षित रूप से कैसे ठीक हो सकता हूं?


एक चीज जो मेरे लिए काम करती है वह है: -
1) उस शाखा पर राइट क्लिक करें जिसे आप चेकआउट करना चाहते हैं।
2) रीसेट विकल्प पर क्लिक करें।
3) हटाएं परिवर्तन पर क्लिक करें (--हार्ड)
4) शाखा पर राइट क्लिक करें और चेकआउट का चयन करें


फ़ाइल नाम बदलने के बाद मुझे एक फ़ाइल नाम बदलने के बाद एक ऊपरी केस अक्षर से शुरू करने के बाद एक फ़ाइल नाम बदलने के बाद यह समस्या थी। मैंने फ़ाइल के नाम को बदलकर इसे ठीक किया है (मैंने अभी अंत में '1' जोड़ा है) और फिर उस परिवर्तन को कर रहा है। मैं तब शाखाओं को स्विच करने में सक्षम था।

जैसा ऊपर बताया गया है, मुझे अपमानजनक फ़ाइल का नाम देखने के लिए आउटपुट विंडो में 'स्रोत आउटपुट - गिट' से 'आउटपुट शो: गिट' को बदलना पड़ा, जिससे मुझे दिखाया गया कि फ़ाइल नाम वीएस / गिट था उम्मीद की गई पूंजीकृत नहीं थी, जहां फ़ाइल सिस्टम पर समाधान एक्सप्लोरर / नाम का नाम पूंजीकृत था।


मुझे एक ही समस्या का सामना करना पड़ा, मैंने देखा कि असामान्य परिवर्तन विभिन्न परियोजनाओं से हैं। एक बार मैंने उन परिवर्तनों को करने के बाद, मुझे शाखा परिवर्तन की अनुमति दी।


मैंने देखा है कि कुछ बार एसएलएन आइटम बदले गए चिह्नित हैं लेकिन समाधान एक्सप्लोरर में ऐसा नहीं दिखते हैं। मैंने जो कुछ किया है, वह मैंने कमांड प्रॉम्प्ट में किया है,

git status (this should show you culprit files)

फिर व्यक्तिगत फाइलें जोड़ें। या मैं व्यक्तिगत रूप से क्या करता हूं:

git add -A 

जो टीम एक्सप्लोरर में अच्छी तरह से देखने के लिए सभी बदली गई फ़ाइलों को जोड़ देगा, जहां आप चाहें पूर्ववत / हटा सकते हैं। इस दृष्टिकोण के साथ कोई समस्या नहीं है।


मैंने फ़ाइल को हटाने या नए बदलाव किए बिना एक समान समस्या का समाधान किया।

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

वीएस में शाखा ए में स्विच करने का प्रयास किया और संदेश मिला कि मैं असामान्य परिवर्तनों के कारण स्विच नहीं कर सकता। गिट बैश के माध्यम से शाखा ए पर स्विच करें, और स्थिति में कोई बदलाव नहीं दिखाता है। वीएस टीम एक्सप्लोरर को रीफ्रेश करें, इसलिए यह अब शाखा ए पर है, 14 फाइल परिवर्तन दिखाता है, यहां तक ​​कि मास्टर से भी अधिक, लेकिन फिर, सभी फाइलों पर भिन्नता में कोई बदलाव नहीं दिखाया गया है।

टीम एक्सप्लोरर में शाखा ए के दौरान, मैंने क्रियाओं पर क्लिक किया-> पिछली प्रतिबद्धता में संशोधन करें। इस बार यह होने दिया और सभी परिवर्तनों को मंजूरी दे दी गई। इसके बाद उसने लंबित प्रतिबद्धता दिखाई, लेकिन गिट बैश पर जांच की स्थिति में कुछ भी लंबित नहीं हुआ, इसलिए टीम एक्सप्लोरर में घर जाकर वापस आकर लंबित प्रतिबद्ध संदेश को मंजूरी दे दी गई।

टीम एक्सप्लोरर में मास्टर के लिए स्विच किया गया, वहां कोई और बदलाव नहीं दिख रहा है। सब ठीक हैं।


समस्या यह है कि कभी-कभी कुछ फ़ाइलों को खींचने के बाद रिपोजिटरी डेटाबेस में उनके बराबर मेल नहीं खाते क्योंकि तुलना केस-सेंसिटिव है।

उदाहरण के लिए, आपके पास "MyLibrary \ ABC \ फ़ोल्डर \ MyFile.cs" भंडार में हो सकता है लेकिन डिस्क पर "MyLibrary \ Abc \ फ़ोल्डर \ MyFile.cs" हो सकता है। "गिट स्थिति" में कोई परिवर्तन नहीं मिलेगा लेकिन विजुअल स्टूडियो शाखा स्विच को अवरुद्ध कर देगा।

उस मामले में डिस्क से केवल MyFile.cs को हटाने से समस्या हल नहीं होगी - आपको एबीसी निर्देशिका को हटाना होगा और फिर दृश्य स्टूडियो के लिए सही नामों के साथ फ़ोल्डर संरचना को पुनर्निर्मित करने के लिए परिवर्तन पूर्ववत करना होगा।


हम नियमित रूप से इस मुद्दे में भाग लेते हैं, क्योंकि हमारे पास एक विशेष फ़ाइल है जिसे हमेशा परिवर्तनों से बाहर रखा जाना चाहिए, लेकिन कभी-कभी बदल जाता है।

त्रुटि संदेश प्रकट होने पर हमारे लिए क्या काम करता है:

  1. वीएस में आउटपुट विंडो में देखने के लिए यह देखने के लिए कि कौन सी फाइल समस्या उत्पन्न कर रही है।
  2. गिट बैश रन git update-index --no-assume-unchanged TheNameOfTheFileCausingTheIssue
  3. इस फ़ाइल पर वीएस पूर्ववत चेकआउट में
  4. वीएस में शाखाओं को प्रबंधित करने में शाखा बदलती है।

यह आपकी परिस्थिति के लिए काम कर सकता है या नहीं भी हो सकता है, लेकिन अगर मैंने इसे किसी को सही दिशा में रखा है तो मैंने इसे जोड़ा है। कृपया सुनिश्चित करें कि आप इसे चलाने से पहले गिट कमांड को समझें!





visual-studio-2013