full - integrate git bash with visual studio code




गिट और गंदा "त्रुटि: मौजूदा जानकारी/रेफरी घातक लॉक नहीं कर सकता" (8)

रिमोट गिट रिपोजिटरी (बेहतरकोड्स पर) से क्लोन करने के बाद मैंने कुछ बदलाव किए, प्रतिबद्ध और धक्का देने की कोशिश की:

git push origin master

इसके साथ त्रुटियां:

त्रुटि: मौजूदा जानकारी / रेफरी को लॉक नहीं कर सकता है
घातक: git-http-push विफल

यह मामला पहले से ही मौजूदा भंडार का संबंध है।

मैंने पहले क्या किया था:

  1. git config –global http.sslVerify false
  2. git init
  3. git remote add [url]
  4. git clone
  5. डेटा बदलें
  6. git commit

'Bettercodes' पर मुझे गिट लॉग तक कोई पहुंच नहीं है।

मैं विंडोज का उपयोग कर रहा हूँ। विस्तृत त्रुटि थी:

C:\MyWorkStuff\Projects\Ruby\MyProject\>git push origin master
Unable to create branch path https://user:[email protected]/myproject/info/
error: cannot lock existing info/refs
fatal: git-http-push failed

मैंने पहले क्लोन किया, फिर कोड बदल दिया और प्रतिबद्ध किया।


Bettercodes.org के मामले में, समाधान अधिक काव्य है - केवल एक ही समस्या परियोजना सदस्यों को सौंपा अधिकारों में हो सकती है। सरल सदस्यों के पास लिखने के अधिकार नहीं हैं! कृपया सुनिश्चित करें कि आपके पास मॉडरेटर या प्रशासक अधिकार हैं। इसे एक प्रशासक द्वारा परियोजना सेटिंग्स पर bettercodes.org पर सेट करने की आवश्यकता है।


अद्यतन करें:

आपको अपनी ~ / .netrc फ़ाइल को संपादित करने की आवश्यकता हो सकती है:

https://bugs.launchpad.net/ubuntu/+source/git-core/+bug/293553

मूल उत्तर:

आपने एसएसएल को अक्षम क्यों किया? मुझे लगता है कि यह आपके साथ ऐसा करना पड़ सकता है जो https के माध्यम से धक्का नहीं दे पाता है। मैं इसे वापस सेट कर दूंगा और फिर से धक्का देने की कोशिश करूंगा:

git config –global http.sslVerify true

जांचें कि आप (गिट प्रक्रिया वास्तव में) फ़ाइल तक पहुंच सकते हैं। Git .git/info/refs और यह फ़ाइल किसी अन्य प्रक्रिया द्वारा लॉक नहीं है।


मुझे यह मुद्दा था क्योंकि मैं एक शाखा में था जिसकी एक अपस्ट्रीम शाखा के समान नाम था। यानी अपस्ट्रीम शाखा को example-branch कहा जाता था और मेरी स्थानीय शाखा को example-branch/backend कहा जाता था। समाधान मेरी स्थानीय शाखा का नाम बदल रहा था जैसे:

git branch -m <new name goes here>

मेरे लिए यह काम किया:

git remote prune origin

चूंकि यह उत्तर बहुत से लोगों की मदद करता प्रतीत होता है, इसलिए मैंने वास्तव में यहां क्या होता है उसमें थोड़ा सा खोला। यह क्या करेगा फ़ोल्डर में रिमोट शाखाओं के संदर्भ हटाएं। .git/refs/remotes/origin । इसलिए यह आपको स्थानीय शाखाओं को प्रभावित नहीं करेगा और यह कुछ भी रिमोट नहीं बदलेगा, लेकिन यह दूरस्थ संदर्भों के स्थानीय संदर्भों को अपडेट करेगा। ऐसा लगता है कि कुछ मामलों में इन संदर्भों में डेटा गिट सही ढंग से संभाल नहीं सकता है।


मैंने इसे निम्नलिखित करके तय किया

git branch --unset-upstream
rm .git/refs/remotes/origin/{branch}
git gc --prune=now
git branch --set-upstream-to=origin/{branch} {branch}
#or git push --set-upstream origin {branch}
git pull

यह मानते हुए कि आपकी स्थानीय और दूरस्थ शाखाएं गठबंधन हैं और आप केवल रेफरी त्रुटि को गैर घातक के रूप में प्राप्त कर रहे हैं।


यह मेरे लिए काम करता है।

  1. अपने सर्वर पर अपाचे डीएवी लॉक फ़ाइल देखें (उदाहरण के लिए / var / lock / apache2 / DAVlock)
  2. इसे मिटाओ
  3. वेबसर्वर के लिए लिखने की अनुमति के साथ इसे फिर से बनाएं
  4. वेबसर्वर को पुनरारंभ करें

यहां तक ​​कि तेज विकल्प:

  1. अपने सर्वर पर अपाचे डीएवी लॉक फ़ाइल देखें (उदाहरण के लिए / var / lock / apache2 / DAVlock)
  2. फ़ाइल खाली करें: cat /dev/null > /var/lock/apache2/DAVlock
  3. वेबसर्वर को पुनरारंभ करें

यह मेरे साथ हुआ जब मेरे गिट रिमोट (bitbucket.org) ने अपना आईपी पता बदल दिया। त्वरित फिक्स रिमोट को हटाने और फिर से जोड़ने के लिए था, फिर सब कुछ अपेक्षित के रूप में काम किया। यदि आप गेट में रिमोट को हटाने और फिर से जोड़ने के बारे में परिचित नहीं हैं, तो यहां चरण हैं:

  1. अपने मौजूदा रिमोट के एसएसएच गिट यूआरएल की प्रतिलिपि बनाएँ। आप इसे इस आदेश का उपयोग कर टर्मिनल पर प्रिंट कर सकते हैं:

    git remote -v

जो इस तरह कुछ प्रिंट करेगा:

 origin [email protected]:account-name/repo-name.git (fetch)
 origin [email protected]:account-name/repo-name.git (push)
  1. रिमोट को अपने स्थानीय गिट रेपो से हटाएं:

    git remote rm origin

  2. रिमोट वापस अपने स्थानीय रेपो में जोड़ें:

    git remote add origin [email protected]:account-name/repo-name.git







git