2012-11-21 12 views
5

मैं शाखा को स्विच करना चाहता हूं। लेकिन त्रुटिगिट शाखा स्विच नहीं कर सकता: "अनचाहे फ़ाइल" लेकिन काम कर रहे निर्देशिका को साफ करें

error: Untracked working tree file 'foo.phtml' would be overwritten by merge. 

यदि मैं इस फ़ाइल को हटा देता हूं तो अगली फ़ाइल शिकायत की जाती है। समस्या यह है कि दो शाखाओं में फाइलों का एक बहुत बड़ा अंतर है।

$ git reset --hard HEAD 
HEAD is now at 8a2a95c Initial checkin 
$ git checkout otherbranch 
error: Untracked working tree file 'foo.phtml' would be overwritten by merge. 
$ git status 
# On branch master 
# Your branch and 'origin/master' have diverged, 
# and have 1 and 677 different commit(s) each, respectively. 
# 
nothing to commit (working directory clean) 

यहाँ क्या गलत है:

यह है कि मैं क्या करने की कोशिश की है?

मैं भी पहले से ही

git clean -f -d 

उत्तर

4

की कोशिश की आप समस्या यह है कि शाखा आप की जांच करना चाह foo.phtml जो अपने वर्तमान शाखा में ट्रैक नहीं कर रहे हैं की तरह कई फ़ाइलें हैं सामना करते हैं। ऐसा लगता है कि तुम सिर्फ फ़ाइलें हटा सकते हैं, तो कोशिश:

git checkout -f otherbranch 
+0

मेरे सहयोगी एक ही पल में पता चला :-) दिलचस्प हिस्सा यह है कि क्यों गिट स्थिति एक साफ काम करने वाली निर्देशिका दिखाती है। – Alex

+1

यदि यह अनचाहे फ़ाइलों को नहीं दिखाता है, तो आपका '.gitignore' उन्हें ओवरराइड कर सकता है। – mavam

4

बस मामले में आप फ़ाइलों के बारे में बाद में परवाह है,

git stash -u 

हैं जो आपके कार्य निर्देशिका साफ होगा उपयोग करते हैं लेकिन मामले में आप खो देते हैं कुछ, आप इसे वापस छीन से प्राप्त कर सकते हैं। अब आप आगे बढ़ सकते हैं और अपनी दूसरी शाखा चेकआउट कर सकते हैं।

अन्य परिदृश्य यह है कि फ़ाइलों को एक शाखा में अनदेखा किया जाता है, न कि दूसरे में। git checkout -f theotherbranch के साथ इस मामले में आपको स्टैश कमांड का पालन करना चाहिए (यदि गिट स्थिति कुछ बदलती है)।

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