2012-12-20 29 views
9

मैं गिट-एसवीएन का उपयोग कर रहा हूं, और मैं git svn rebase चलाने की कोशिश कर रहा हूं।मैं गिट त्रुटि को कैसे डिबग कर सकता हूं: "निम्नलिखित फ़ाइलों में आपके स्थानीय परिवर्तन चेकआउट द्वारा ओवरराइट किए जाएंगे" जब स्टैश करने के लिए कुछ भी नहीं है?

मैं त्रुटि मिलती है:

Your local changes to the following files would be overwritten by checkout: 
<filename> 
Please, commit your changes or stash them before you can switch branches. 

मैं पहले है git update-index --assume-unchanged <filename> चलाते हैं, और फ़ाइल में परिवर्तन किए हैं, लेकिन मैं अब git update-index --no-assume-unchanged <filename> दौड़े हैं कि से छुटकारा पाने के।

git status किसी भी बदलाव की रिपोर्ट नहीं करता है और git stash कहता है कि छेड़छाड़ करने के लिए कुछ भी नहीं है।

मैं जाँच की है कि फाइल में .gitignore या .git/info/exclude

मैं इस समस्या को आगे कैसे डीबग कर सकते हैं नहीं है?

उत्तर

10

यह पता चला मैं skip-worktree सा सेट था कि, तो मैं

git update-index --no-skip-worktree <filename> 

चलाने के लिए आवश्यक मैं

git ls-files -v | grep "^[^H]" 

चल (या git ls-files -v | where { $_ -match "^[^H]"} Windows PowerShell के साथ) द्वारा

इस पता चला

टाइपिंग git help ls-files ने बताया कि आउटपुट का क्या अर्थ है।

12

मुझे यह समस्या हो रही थी और टिम के जवाब ने मुझे समाधान का पता लगाने में मदद की।

अतीत में मैं समाप्त हो चुकी थी:

git update-index --assume-unchanged index.php 

समस्या

किसी अन्य शाखा में परिवर्तन का एक समूह बनाने दूर से, मैं अधिलेखित चेतावनी स्थानीय स्तर पर स्विच करने का प्रयास करते समय हो रही थी के बाद।

git checkout other-branch 

error: Your local changes to the following files would be overwritten by checkout: 
index.php 
Please, commit your changes or stash them before you can switch branches. 
Aborting 

स्टैशिंग काम नहीं कर रहा था।

git stash save --keep-index 
No local changes to save 

समाधान

git update-index --no-assume-unchanged index.php 
git add index.php 
git commit 

उसके बाद।

git checkout other-branch 

सफलता!

+0

आपकी पोस्ट के लिए धन्यवाद। मेरे मामले में कुछ ऐसा ही हुआ जिससे मैंने फ़ाइल को संशोधित किया, फिर मैंने गिट अपडेट - केस्यूम-अपरिवर्तित किया जिसके परिणामस्वरूप यह त्रुटि हुई। मुझे --no-assume-unchanged, प्रतिबद्ध, और उसके बाद --assume-अपरिवर्तित करके अपने समाधान का पालन करना पड़ा। केवल –

+0

के बाद ही इसे दबाएं यदि आप 'गिट प्रतिबद्ध' का उपयोग करते हैं, तो index.php में आपके सभी स्थानीय परिवर्तन दूरस्थ हो जाएंगे, और सभी लोग, जो परियोजना खींचेंगे, आपके परिवर्तन प्राप्त करेंगे, है ना? गिट इस त्रुटि मामले में 2 तरीके प्रस्तावित करता है: प्रतिबद्ध या छेड़छाड़। इसलिए, मैं 'गिट अपडेट-इंडेक्स - नो-एसम्यू-अपरिवर्तित' के बाद 'गिट स्टेश' का उपयोग करना पसंद करता हूं। –