.गरिग्नोर और "निम्नलिखित अनटैकड वर्किंग ट्री फाइल को चेकआउट द्वारा अधिलेखित किया जाएगा"


826

इसलिए मैंने अपने .gitignore फ़ाइल में एक फ़ोल्डर जोड़ा।

एक बार जब मैं ऐसा करता हूं तो git statusयह मुझे बताता है

# On branch latest
nothing to commit (working directory clean)

हालाँकि, जब मैं शाखाओं को बदलने की कोशिश करता हूँ तो मुझे निम्नलिखित मिलते हैं:

My-MacBook-Pro:webapp marcamillion$ git checkout develop
error: The following untracked working tree files would be overwritten by checkout:
    public/system/images/9/thumb/red-stripe.jpg
    public/system/images/9/original/red-stripe.jpg
    public/system/images/8/thumb/red-stripe-red.jpg
    public/system/images/8/original/red-stripe-red.jpg
    public/system/images/8/original/00-louis_c.k.-chewed_up-cover-2008.jpg
    public/system/images/7/thumb/red-stripe-dark.jpg
    public/system/images/7/original/red-stripe-dark.jpg
    public/system/images/7/original/DSC07833.JPG
    public/system/images/6/thumb/red-stripe-bw.jpg
    public/system/images/6/original/website-logo.png
    public/system/images/6/original/red-stripe-bw.jpg
    public/system/images/5/thumb/Guy_Waving_Jamaican_Flag.jpg
    public/system/images/5/original/logocompv-colored-squares-100px.png
    public/system/images/5/original/Guy_Waving_Jamaican_Flag.jpg
    public/system/images/4/thumb/DSC_0001.JPG
    public/system/images/4/original/logo.png
    public/system/images/4/original/DSC_0001.JPG
    public/system/images/4/original/2-up.jpg
    public/system/images/3/thumb/logo2.gif
    public/system/images/3/original/logo2.gif
    public/system/images/3/original/Guy_Waving_Jamaican_Flag.jpg
    public/system/images/3/original/11002000962.jpg
    public/system/images/2/thumb/Profile Pic.jpg
    public/system/images/2/original/Profile Pic.jpg
    public/system/images/2/original/02 Login Screen.jpg
    public/system/images/1/original/Argentina-2010-World-Cup.jpg
Please move or remove them before you can switch branches.
Aborting

यह मेरी .gitignore फ़ाइल की तरह दिखता है:

.bundle
.DS_Store
db/*.sqlite3
log/*.log
tmp/**/*
public/system/images/*
public/system/avatars/*

मुझे यह काम कैसे मिलेगा ताकि मैं उन फ़ाइलों को हटाए बिना शाखाओं को स्विच कर सकूं?

अगर मैं बदलाव करता हूं, तो क्या यह उन फाइलों को प्रभावित करेगा? दूसरे शब्दों में, अगर मैं बाद में इस शाखा में वापस आ गया तो क्या मेरी नवीनतम प्रतिबद्धता तक सब कुछ सही होगा?

मैं उन फाइलों को खोना नहीं चाहता, मैं सिर्फ उन्हें ट्रैक नहीं करना चाहता।


10
अगर आप वास्तव में इन फाइलों के बारे में परवाह नहीं करते हैं: git checkout -f <शाखा> मेरे मामले में फाइलें निर्माण प्रक्रिया में उत्पन्न होती हैं, इसलिए मैं कम परवाह नहीं करता हूं
Hobbamok

कभी-कभी ऐसा होता है जब आप 'git checkout' (बिना शाखा का नाम) करते हैं। ठीक करने के लिए, कर 'Git चेकआउट BRANCHNAME'
crafter

अलग, लेकिन गंभीर रूप से संबंधित प्रश्न: यह त्रुटि आखिर क्यों होती है? क्यों सिर्फ शाखाओं के बीच स्विच नहीं कर सकते?
एहनबीकैड

@ahnbizcad क्योंकि यदि आप एक नई फ़ाइल पर काम कर रहे थे, और किसी अन्य शाखा पर कोई व्यक्ति इसी नाम से एक फ़ाइल बनाने के लिए हुआ था, तो जब आप शाखाओं को स्विच करते हैं तो आपके संस्करण को तोड़ दिया जाएगा, तो आप नाराज हो जाएंगे। इसीलिए -फ झंडा लगा है।
मैथ्यू शार्प

जवाबों:


263

ऐसा लगता है जैसे आप फ़ाइलों को अनदेखा करना चाहते हैं, लेकिन वे पहले से ही शुरू हो चुके हैं। .ignignore का उन फ़ाइलों पर कोई प्रभाव नहीं है जो पहले से ही रेपो में हैं इसलिए उन्हें हटाने की आवश्यकता है git rm --cached--cachedअपने काम की नकल पर कोई असर होने से रोकने जाएगा और यह बस के रूप में अगली बार जब आप प्रतिबद्ध हटाया का प्रतीक होगा। फ़ाइलों को रेपो से हटा दिए जाने के बाद। .ignignore उन्हें फिर से जोड़े जाने से रोकेगा।

लेकिन आपके पास अपने .gitignore के साथ एक और समस्या है, आप वाइल्डकार्ड्स का अत्यधिक उपयोग कर रहे हैं और इसके कारण यह आपकी अपेक्षा से कम मैच कर रहा है। इसके बजाय .gitignore को बदलने देता है और इसे आज़माता है।

.bundle
.DS_Store
db/*.sqlite3
log/*.log
tmp/
public/system/images/
public/system/avatars/

2
धन्यवाद .... मैंने वर्तमान शाखा से सभी फाइलों को हटा दिया और उन्हें बैकअप दिया। फिर शाखाओं को स्विच किया और उन्हें वापस रख दिया। वह काम किया। इसके अलावा, यद्यपि
.ignignore

@marcamillion: "क्या काम किया" से आपका क्या मतलब है? यदि आपके द्वारा स्विच की गई शाखा पर फ़ाइलों को ट्रैक किया गया था, तो आपने उन्हें अपने संस्करणों के साथ अधिलेखित कर दिया है, जो अलग हो सकता है ...
Cascabel

1
मैं एक / निर्माण फ़ोल्डर के साथ एक समस्या हो रही थी जिसे ट्रैक करने की आवश्यकता नहीं है। इसलिए मैंने स्थानीय फ़ोल्डर को हटा दिया, मेरी .gitignore फ़ाइल को प्रतिबद्ध किया, फिर दूसरी शाखा की जाँच की। कि आखिरकार मेरे लिए काम किया।
माइक एस।

16
मुझे लगता है कि पहला भाग इस विशेष त्रुटि संदेश के रिवर्स के लिए है। यह त्रुटि बता रही है कि उपयोगकर्ता वर्तमान में एक शाखा में है, जिनके पास उन JPG फ़ाइलों को ट्रैक नहीं किया गया है और उपयोगकर्ता उस एक को स्थानांतरित करने का प्रयास कर रहा है। इसलिए करने git rm --cachedसे फर्क नहीं पड़ेगा, वे फाइलें वर्तमान शाखा में मौजूद नहीं हैं। इस त्रुटि के लिए मुझे लगता है कि उपयोगकर्ता को इसके बजाय @Greg Hewgill के उत्तर का पालन करने की आवश्यकता है - "उन्हें वर्किंग कॉपी से बाहर ले जाएं, शाखाओं को स्विच करें और उन्हें वापस ले जाएं"।
स्टूजेक

4
जब मैं करता हूं तो किसी के your files would be overwrittenसाथ इसे सुलझाने के बारे में fatal: pathspec 'test/node_modules' did not match any filesक्या होगा git rm -r --cache test/node_modules? मैं अधिलेखित संदेश के कारण नहीं खींच सकता और हटा नहीं सकता क्योंकि जीआईटी उन्हें नहीं ढूंढ सकता (वे वहां हैं)
एचएमआर

1045

चेतावनी: यह अनटैक की गई फ़ाइलों को हटा देगा, इसलिए यह प्रश्न का कोई बड़ा जवाब नहीं है।

मैंने इस संदेश को भी हिट किया। मेरे मामले में, मैं फाइलें नहीं रखना चाहता था, इसलिए यह मेरे लिए काम कर रहा है:

git 2.11 और नया

git clean  -d  -f .

पुराना गिट

git clean  -d  -f ""

यदि आप भी गिट द्वारा नजरअंदाज की गई फाइलों को हटाना चाहते हैं, तो निम्नलिखित कमांड को निष्पादित करें।

चेतावनी दी!!! इस प्रस्ताव को पूरी तरह से आपके परियोजना को नष्ट कर दिया जाता है, केवल तभी उपयोग करें जब आप 100% जानते हों कि आप क्या कर रहे हैं

git 2.11 और नया

git clean  -d  -fx .

पुराना गिट

git clean  -d  -fx ""

http://www.kernel.org/pub/software/scm/git/docs/git-clean.html

  • -x इसका मतलब यह है कि नजरअंदाज की गई फाइलें भी हटा दी जाती हैं और साथ ही अज्ञात फाइल को भी हटा दिया जाता है।

  • -d इसका मतलब यह है कि अनट्रैक की गई फ़ाइलों के अलावा अनट्रेक्टेड डायरेक्ट्रीज को हटा दें।

  • -f इसे चलाने के लिए बाध्य करना आवश्यक है।


7
धन्यवाद, उस स्वच्छ के बाद मैं पुन: उत्पन्न करने में सक्षम था;
अलेक्जेंडर बेलेटस्की

139
स्वच्छ होने के लिए जब सावधान रहना होगा!
नोएल

249
फेसप्लम से बचने के लिए, सबसे पहले इसे ड्राई-रन के विकल्प के साथ देखें कि यह क्या करेगा: git clean -dfxnयाgit clean -dfx --dry-run
डेनिस

74
बकवास। यह मेरे xcode पर सभी कॉन्फिग फाइलों को हटा देता है और अब यह प्रोजेक्ट मैक प्रोजेक्ट में बदल रहा है। इस कारनामे को पूरा करते हुए बहुत ही सावधान रहना चाहिए। मुझे लगा कि यह केवल इसे गिट से हटा देगा।
tyegah123

25
-xविकल्प मेरे दर्द होता है
wener

589

चेतावनी: यह उन स्थानीय फ़ाइलों को हटा देगा जो अनुक्रमित नहीं हैं

बस इसे मजबूर करें: git checkout -f another-branch


78
चेतावनी: यह उन स्थानीय फ़ाइलों को हटा देगा जो अनुक्रमित नहीं हैं।
गिवेंसे

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

7
मैं वह फ़ाइल नहीं चाहता था जिसे अनुक्रमित नहीं किया गया था! आप के लिए +1
ryansstack

मुझे यह त्रुटि मिली,,: :(error: pathspec 'mybranch' did not match any file(s) known to git.
बुली मुलो

2
यही असली जवाब है।
मेटामोनकी

145

यदि आप OS X पर हैं, तो हो सकता है कि किसी फ़ाइल के नाम में कुछ वर्ण परिवर्तन का मामला हो। निम्नलिखित विन्यास विकल्प सेट करने का प्रयास करें:

git config core.ignorecase true

13
इसने विंडोज पर भी काम किया, ऐसा लगता है कि यह स्थिति केस परिवर्तन के कारण पहले स्थान पर हुई थी जिसे जीआईटी निर्धारित नहीं कर सका
13

4
यह वास्तव में मेरे पास समस्या थी, एक फ़ाइल पथ एक पत्र के मामले से अलग था - विंडोज यह उसी के अनुसार व्यवहार करता है लेकिन जीआईटी वह नहीं है जो समस्या है।
डैनियल सोकोलोव्स्की

1
मेरी समस्या विंडोज 10 में एक और शाखा के चेकआउट में हुई, और केवल मेरे लिए यह काम था, धन्यवाद
वीजे सन

बहुत बढ़िया! यह मेरी समस्या को ठीक करता है जब मैं टैग्स के बीच आगे बढ़ रहा था
विलियम ऑन्ज़

1
यह भी अगर आप के git rebaseरूप में अच्छी तरह से करने की कोशिश करता है काम करता है । धन्यवाद।
user3890355

42

Git आपको बता रहा है कि वह फ़ाइलें (नाम public/system/images/9/...आदि) बनाना चाहता है , लेकिन आपके पास पहले से ही उस निर्देशिका में मौजूद फ़ाइलें हैं जिन्हें Git द्वारा ट्रैक नहीं किया गया है। शायद किसी और ने उन फ़ाइलों को गिट रिपॉजिटरी में जोड़ा है, और यह पहली बार है जब आपने उस शाखा में स्विच किया है?

वहाँ शायद एक कारण है कि आपकी developशाखा में वे फाइलें हैं, लेकिन आपकी वर्तमान शाखा में नहीं हैं। आपको अपने सहयोगियों से पूछना पड़ सकता है कि ऐसा क्यों है।

मुझे यह काम कैसे मिलेगा, इसलिए मैं उन फ़ाइलों को हटाने के बिना शाखाओं को स्विच कर सकता हूं?

आप फ़ाइलों को किसी तरह गायब किए बिना ऐसा नहीं कर सकते। आप अभी के publicलिए my_publicया कुछ के लिए नाम बदल सकते हैं।

अगर बाद में मैं इस शाखा में वापस आ गया तो क्या मेरी नवीनतम प्रतिबद्धता के अनुसार सब कुछ सही होगा?

यदि आप अपने परिवर्तन करते हैं, तो Git उन्हें नहीं खोएगा। यदि आप अपने परिवर्तन नहीं करते हैं, तो Git आपके द्वारा किए गए कार्य को अधिलेखित नहीं करने के लिए वास्तव में कठिन प्रयास करेगा । यही Git आपको यहां पहली बार में चेतावनी दे रहा है (जब आपने शाखाओं को स्विच करने की कोशिश की थी)।


स्पष्टीकरण के लिए धन्यवाद। मैंने फाइलों का बैकअप लिया, शाखाओं को स्विच किया और उन्हें विलय कर दिया और फिर फाइलों को सार्वजनिक फ़ोल्डर में बदल दिया। वह काम किया।
मार्ककैमिल

1
जैसा कि मैंने @ एरोमास्टर के उत्तर पर टिप्पणी की है। यह त्रुटि संदेश के लिए सही उत्तर है। यह इस विशेष रूप से प्रश्नकर्ता के लिए सही जवाब नहीं हो सकता है क्योंकि वह वास्तविक समस्याओं को अपने gitignore लगता है।
स्टूजेक

37

इसने मेरे लिए काम किया।

 1. git fetch --all
 2. git reset --hard origin/{branch_name}

5
कृपया अपने समाधान पर स्पष्टीकरण जोड़ें। देखें stackoverflow.com/help/how-to-answer
user7294900

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

2
किसी कारण से, यह मेरे लिए एकमात्र कार्यशील समाधान है। धन्यवाद दोस्त।
किवद

मेरी समस्या का समाधान किया। धन्यवाद
Devashis कांत

बहुत धन्यवाद, इतना आसान! git रीसेट --soft मूल / विकसित। मैं इन मर्ज से कैसे नफरत करता हूं संपादन संपादित करना। यह आदेश इतना अच्छा और सरल है।
नौ ९वें जिव

22

इस नाजुक कार्य के लिए एक आदेश है (स्थायी रूप से अनट्रैक की गई फ़ाइलों को हटाना)

git clean -i

फिर git pullकरेंगे।


13

उन लोगों के लिए जिन्हें स्कॉट शेफ़र के उत्तर की तुलना में कुछ कम दूरगामी होने की आवश्यकता है ,

git clean -f

काम की संभावना होगी। मैं अत्यधिक चलने का सुझाव देता हूं

git clean --dry-run

प्रथम। यह आदेश उन फ़ाइलों की एक सूची को आउटपुट करेगा जो आपके द्वारा चलाए जाने पर Git को हटा देगा git clean -f, और आपको अनजाने में कुछ ऐसी चीज़ों को हटाने से बचा सकता है जिन्हें आप नहीं करना चाहते थे।

देखें इस ढेर Oveflow जवाब या डॉक्स बारे में अधिक जानकारी के लिए git clean


12

दुर्भाग्य से न तो git rm --cachedया git clean -d -fx ""मेरे लिए ऐसा किया।

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

कहानी का नैतिक: .gitignoreस्थापना से एक फ़ाइल का उपयोग करें ।


10

यदि आप इस प्रश्न को जल्दी से हल करना चाहते हैं, तो आप इस आदेश का उपयोग कर सकते हैं:

git checkout -f dev

इससे मुझे मदद मिली, जब मेरा मुद्दा .gitignoreएफिक से जुड़ा नहीं था ।
नैकिलोन

त्रुटि: pathspec 'dev' git के लिए ज्ञात किसी भी फ़ाइल (नों) से मेल नहीं खाता।
ब्लैक

@ ब्लेक 'देव' शाखा का नाम है, अपनी शाखा लगाएं
विनित सोलंकी

8

जब मुझे पहले वाली कमिटमेंट के आधार पर एक शाखा की जाँच करनी पड़ी तो मुझे भी यही समस्या थी। Git ने अनट्रैक फ़ाइलों के कारण चेकआउट करने से इनकार कर दिया।

मुझे एक समाधान मिल गया है और मुझे आशा है कि यह आपकी भी मदद करेगा।

प्रभावित निर्देशिकाओं को जोड़ना .gitignoreऔर $ git rm -r --cachedउन पर जारी करना स्पष्ट रूप से पर्याप्त नहीं है।

मान लें कि आप कुछ सामान का परीक्षण करने और वर्तमान संस्करण में वापस आने के लिए पहले से प्रतिबद्ध कश्मीर पर आधारित एक शाखा बनाना चाहते हैं। मैं इसे निम्नलिखित चरणों में करूंगा:

  1. अनट्रैक की गई फ़ाइलों को सेट करें: जिन फ़ाइलों और निर्देशिकाओं को आप अनदेखा करना चाहते हैं, उन्हें संपादित करें .gitignoreऔर उन $ git rm -r --cachedपर लागू करें। फ़ाइल को .gitignoreस्वयं भी जोड़ें .gitignoreऔर जारी करना न भूलें $ git rm -r --cached .gitignore। यह पहले के कमिट्स में समान रूप से गिट पत्तों की अनदेखी व्यवहार को सुनिश्चित करेगा।

  2. आपके द्वारा अभी किए गए परिवर्तनों को पूरा करें:

    $ git add -A
    $ git commit

  3. वर्तमान लॉग को सहेजें, अन्यथा आपको वर्तमान संस्करण में वापस आने में समस्या हो सकती है

    $ git log > ../git.log

  4. प्रतिबद्ध कश्मीर के लिए हार्ड रीसेट

    $ git reset --hard version_k

  5. प्रतिबद्ध कश्मीर के आधार पर एक शाखा बनाएं

    $ git branch commit_k_branch

  6. उस शाखा में चेकआउट करें

    $ git checkout commit_k_branch

  7. अपना सामान करो और इसे कमिट करो

  8. फिर से मास्टर में चेकआउट करें

    $ git checkout master

  9. वर्तमान संस्करण पर फिर से रीसेट करें

    $ git reset current_version या $ git reset ORIG_HEAD

  10. अब आप हार्ड को HEAD में रीसेट कर सकते हैं

    git reset --hard HEAD

ध्यान दें! अगला-टू-लास्ट स्टेप (जैसे जैसे $ git reset --hard ORIG_HEAD ) को स्किप न करें अन्यथा ऊपर शिकायत की गई अनटैक की गई फाइलें गुम हो जाएंगी।

मैंने यह भी सुनिश्चित किया कि जिन फ़ाइलों के बारे में शिकायत की गई थी, वे हटाए नहीं गए हैं। मैंने उन्हें एक टेक्स्ट-फाइल में कॉपी किया और कमांड जारी किया$ for i in $(cat ../test.txt); do ls -ahl $i; done

यदि आप फिर से ऊपर उल्लिखित शाखा को चेकआउट करते हैं, तो यह $ git statusसुनिश्चित करने के लिए जारी करना न भूलें कि कोई अवांछित परिवर्तन दिखाई न दे।


8

कमांड प्रॉम्प्ट से Git का उपयोग करते हुए विंडोज 8 सिस्टम पर मेरे साथ ऐसा हुआ । मेरी टीम के बाकी सदस्य टीएफएस का उपयोग करते हैं , और मैं टीएफएस और मेरे स्थानीय गिट रिपॉजिटरी के बीच धक्का / खींचने के लिए माइक्रोसॉफ्ट के गिट-टीएफ का उपयोग करता हूं ।

कुछ फ़ाइलों के कारण समस्या उत्पन्न हुई थी जिनका नाम बदलकर केवल उनका मामला बदल दिया गया था । प्रतीत होता है कि यह हुआ था:

  • फाइलों को उनके नामों में मिश्रित आवरण के साथ जांचा गया था।
  • बाद के एक कमिट में, फ़ाइल के नाम को सभी लोअर-केस में बदल दिया गया।
  • git-tf को शुरू में मिश्रित मामले में फाइलें मिलीं।
  • जब फ़ाइलों का नाम बदलकर लोअर-केस किया जाता है, तो git-tf को फाइलें नहीं मिलती क्योंकि विंडोज 8 में उन फाइल के नाम बराबर होते हैं।
  • चूंकि Git केस-संवेदी है, इसलिए उसने शिकायत की कि मेरे पास मिश्रित-केस फाइलें थीं जो स्रोत नियंत्रण में नहीं थीं। लेकिन उपयोग करते हुए git status, मैं कोई बदलाव नहीं देख सकता था, क्योंकि विंडोज कमांड प्रॉम्प्ट में उन फ़ाइल नामों के बराबर हैं।

मेरे लिए सबसे सरल उपाय था:

  • git checkoutपरियोजना का एक पिछला संस्करण , इससे पहले कि उन फाइलों को कभी जोड़ा गया था
  • फिर प्रोजेक्ट का git checkoutनवीनतम संस्करण , सही फ़ाइल आवरण के साथ।

+1 मैं वर्तमान शाखा और शाखा पर गिट लॉग का उपयोग करने में सक्षम था, यह देखने के लिए कि जब यह मामला बदल गया; तब मैंने इसके चारों ओर हैक किया ...
ऋषि

4

इन दोनों कार्यों (git rm - cached, git checkout -f other-branch) ने मेरे लिए काम नहीं किया।

इसके बजाय, मैंने भौतिक रूप से फ़ाइल को (ग्रहण में) हटा दिया है क्योंकि गिट आपको क्या करने के लिए कहता है; कृपया शाखाओं को बदलने से पहले उन्हें स्थानांतरित या हटा दें।

और फिर मैंने इसे जोड़ा / प्रतिबद्ध किया।

और फिर मैंने खींच लिया और यह काम किया!


4

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

  • git checkout -f my_branch
  • git pull origin master
  • git submodule update --init

3

मेरे मामले में git rm --cachedकाम नहीं किया। लेकिन मैं इसे एक साथ मिल गयाgit rebase


3

मैं भी इसी तरह के मुद्दे का सामना कर रहा था और मैंने ऊपर पोस्ट किए गए सभी समाधानों की कोशिश की, लेकिन यह काम नहीं किया

समस्या के कारण जब मैं गया था नाम बदलकर मेरे onMusicUpdateListener.javaलिए OnMusicUpdateListener.javaमें developशाखा।

अब के रूप में एक ही फाइल masterथी onMusicUpdateListener.java और हैdevelopOnMusicUpdateListener.java

अब जब भी मैं गुरु के पास जाता हूं तो मुझे एक त्रुटि मिलती है

The following untracked working tree files would be overwritten by checkout

और फिर यह aborted

इस हल करने के लिए, मैं जबरदस्ती checked out masterशाखा और फिर मेरा नाम दिया onMusicUpdateListener.javaकरने के लिए OnMusicUpdateListener.java, committedयह और फिर mergedइसके साथ developशाखा।

फिर मैंने इसमें अपनी developशाखा को अपडेट mergingकिया masterऔर अब सब कुछ सामान्य हो गया है और समस्या हल हो गई है।


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

2

यह एक अनुमति मुद्दा हो सकता है,

स्वामित्व बदलें,

sudo chown -v -R usr-name:group-name folder-name

मेरा भी वही मुद्दा था जो जीता था। मैंने एक .gitignore को पहले से ट्रैक किए जा रहे फ़ोल्डर में जोड़ा। मैंने फ़ाइल को हटा दिया और फिर एक git चेकआउट करने में सक्षम था।
cbloss793

2

एक ही नाम वाली 2 फाइलें, लेकिन अलग-अलग मामला हो सकता है।

आप इन फ़ाइलों में से एक को हटा सकते हैं या उसका नाम बदल सकते हैं। उदाहरण के लिए:

Pdf.html.twig (The GOOD one)

pdf.html.twig (The one I deleted)

2

डिलीट की जगह फाइल्स को मूव करें

फ़ाइलों को हटाने से बचने का एक तरीका उन्हें बदले में ले जाना है। उदाहरण के लिए:

cd "`git rev-parse --show-toplevel`"
git checkout 2>&1 | while read f; do [ ! -e "$f" ] || mv "$f" "$f".bak; done

1

यदि आपने स्थानीय रूप से किसी फ़ाइल का नाम बदला है और फिर a करें pull, तो यह उस त्रुटि संदेश को प्रदर्शित करेगा।


उस मामले में यह त्रुटि कैसे प्राप्त करें? फ़ाइल नाम (MyFile => myfile) में मामला बदलने के बाद शाखाओं को स्विच करते समय यह संदेश भी दिखाई देता है।
बर्नहार्ड डब्लर

1

इसे हल करना आसान है, git कह रहा है कि आपके पास दोनों शाखाओं में समान फ़ाइलें हैं, इसलिए आपको विशिष्ट फ़ाइलों को मास्टर शाखा से हटाना होगा और फिर आप विलय कर पाएंगे:

git मर्ज "आपकी शाखा"

मुझे आशा है कि यह आपके लिए काम करता है, मैंने अभी अपनी त्रुटि हल की है। मेरी त्रुटि थी:

त्रुटि: निम्न अनुपयोगी कार्यशील ट्री फ़ाइलों को मर्ज द्वारा अधिलेखित कर दिया जाएगा: .vs / slnx.sqlite कृपया मर्ज करने से पहले उन्हें स्थानांतरित या हटा दें। निरस्त

अब यह काम कर रहा है! मेरे मामले में .vs / slnx.sqlite को विजुअल स्टूडियो द्वारा उत्पन्न किया गया था, मुझे इसे हटाने से पहले बंद करने की आवश्यकता थी।


0

मेरे मामले में, मैं इस त्रुटि को देख रहा था क्योंकि मैं एक लोकप्रिय ओपन सोर्स सीएमएस का उपयोग कर रहा हूं और जो निर्देशिका समस्या पैदा कर रही थी वह अपलोड निर्देशिका थी जिसे सीएमएस लिखते हैं।

तो यह क्या कह रहा था कि ऐसी फाइलें हैं जो आपके पास नहीं हैं, लेकिन जिन्हें आप वर्जन से प्राप्त नहीं कर सकते हैं।

मैं अपने स्थानीय के लिए लाइव साइट से सभी फ़ाइलों को हथियाने वाला हूं, फिर मैं इस रेपो में इस उम्मीद में जांच करूंगा कि यह समस्या ठीक करता है।


0

हटाएं .gitignore से फ़ाइल APPNAME / जनरल / इस समस्या को हल करने के लिए।


0

मैं सिर्फ फाइल सिस्टम में गया और सीधे फाइल को डिलीट किया, फिर git चेकआउट के साथ जारी रखा और यह काम किया।

मुझे समस्या कई बार हुई है और यह डिलीट, पुश, री-ऐड, पुश या ऐसी कुछ चीजों को करने वाले डेवलपर्स से संबंधित हो सकता है।


0

अधिकांश उत्तर फाइलों को हटाने या हटाने पर विचार करते हैं, जो कि आसान तरीका है। लेकिन कभी-कभी आप स्थानीय फ़ाइलों से छुटकारा नहीं चाहते हैं। लेकिन एक रणनीति के साथ विलय, इसलिए इस के लिए भी समाधान है;

git merge --strategy=ours master 

0

बस फ़ाइलों को हटा दें या उनका नाम बदलें।

जैसे

$ git pull
Enter passphrase for key '/c/Users/PC983/.ssh/id_rsa':
error: Your local changes to the following files would be overwritten by merge:
        ajax/productPrice.php
Please commit your changes or stash them before you merge.
error: The following untracked working tree files would be overwritten by merge:
        ajax/product.php
Please move or remove them before you merge.
Aborting
Updating a04cbe7a..6aa8ead5

मुझे ajax / product.php और ajax / produtPrice.php का नाम बदलना / हटाना पड़ा

चिंता न करें, गिट पुल उन्हें वापस लाएगा। मैं आपको हटाने के बजाय उनका नाम बदलने का सुझाव देता हूं, क्योंकि आप कुछ बदलावों को ढीला कर सकते हैं।

यदि यह मदद नहीं करता है, तो आपको पूरी शाखा को हटाना होगा और इसे फिर से बनाना होगा और फिर करना होगा git pull origin remotebranch


0

संशोधित फ़ाइलों को सहेजने और बाद में संशोधित सामग्री का उपयोग करने के लिए। मुझे यह त्रुटि तब मिली जब मैं एक शाखा की जाँच करने की कोशिश कर रहा था और जब रिबेस करने की कोशिश कर रहा था। Git stash की कोशिश करें

git stash


0

यदि कोई फ़ोल्डर नाम '/' या कोई विशेष प्रतीक है तो उस फ़ोल्डर का नाम बदलें। फिर आप बस रिपॉजिटरी को दूसरे स्थान पर क्लोन करते हैं।


0

एक सरल समाधान हो सकता है: बस यह सुनिश्चित करें कि आप सही वर्किंग डायरेक्टरी में हैं GitBash। यदि कोई उपयोगकर्ता अपने फ़ोल्डर पदानुक्रम में बहुत अधिक निर्देशिका मर्ज करने का प्रयास करता है, तो यह संदेश लगभग हर बार होता है।

उदाहरण:

/workspace/git/myBashSourceFolder/myProjectSourcefolder

परिदृश्य: उपयोगकर्ता ने क्लोन किए गए रेपो git-folderको ग्रहण में एक नया जावा प्रोजेक्ट बनाया, जिसने क्लोन किए गए रेपो को आयात किया। ग्रहण ने अपने स्थानीय प्रोजेक्ट में स्रोत फ़ोल्डर के रूप में myProjectSourceFolder सेट किया। इसलिए उपयोगकर्ता ने इसे गिट बैश में दर्ज किया और वहां से अपनी परियोजना को धक्का दिया, खींचा और शुरू किया। git syncs इसलिए myProjectSourceFolder- लेकिन myBashSourceFolder के लिए उसके इतिहास में कोई रिकॉर्ड नहीं है। इसलिए myBashSourceFolder से एक पुश / पुल / मर्ज दिए गए आउटपुट का उत्पादन करेगा, यदि उपयोगकर्ता अगली बार वहां से सिंक करने की कोशिश करता है, तो उस फ़ोल्डर के बजाय जो उसने पहले काम किया था।

समाधान: सही फ़ोल्डर दर्ज करें और फिर से एक पुल का प्रयास करें। लगभग हर बार मुझे सामना करना पड़ा, इस समाधान ने ठीक काम किया :)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.