जवाबों:
मुझे इसके बारे में समझ नहीं है, लेकिन जैसा कि इस धागे में सुझाया गया है , जब मैंने इसका सामना किया तो मैंने बस किया
$ mv .git/refs/remotes/origin/HEAD /tmp
(इसे बस के मामले में चारों ओर रखते हुए) और फिर
$ git gc
शिकायत किए बिना काम किया; मैं किसी भी समस्या में नहीं चला।
git pruneमेरे लिए काम किया, Git में जमा हुए डेटा को हटाने का एक तरीका है, लेकिन उपयोगी कुछ भी संदर्भित नहीं किया जा रहा है।
$ mv .git/refs/remotes/origin/HEAD /tmp $ git gc git prune
git gcमेरे लिए काम करने की तुलना में
जिस समस्या से मैं भाग गया था (जो कि वही समस्या है जो @Stavarengo ने इस टिप्पणी में उल्लेख किया है ) यह है कि डिफ़ॉल्ट दूरस्थ शाखा ( developमेरे मामले में) को हटा दिया गया था, लेकिन अभी भी इसमें संदर्भित था.git/refs/remotes/origin/HEAD ।
.git/refs/remotes/origin/HEADमेरे संपादक में खुलने से यह पता चला:
ref: refs/remotes/origin/develop
मैंने इसे अपनी नई डिफ़ॉल्ट शाखा में इंगित करने के लिए सावधानीपूर्वक संपादित किया और सब कुछ ठीक था:
ref: refs/remotes/origin/master
यह क्लू मुझे परेशान कर रहा था कि रनिंग git pruneने इस त्रुटि को दिखाया:
> git prune
warning: symbolic ref is dangling: refs/remotes/origin/HEAD
ट्रेंटन का जवाब देखने के बाद, मैंने अपनी ओर देखा .git/refs/remotes/origin/HEAD तरफ देखा और देखा कि यह एक पुरानी शाखा की ओर भी इशारा कर रहा है जो अब हटा दी गई है।
लेकिन फ़ाइल को स्वयं संपादित करने के बजाय, मैंने रयान के समाधान की कोशिश की:
git remote set-head origin --auto
यह स्वचालित रूप से नई शाखा में फ़ाइल सेट करता है, और git gcउसके बाद ठीक काम करता है।
git remote set-head $REMOTE --autoमेरे मामले में, $ रिमोट दूरस्थ उपनाम है, न कि डिफ़ॉल्ट "मूल", क्योंकि मेरे पास कई रिमोट सेटअप हैं।
मैंने सोचा था कि समाधान निम्नलिखित था क्योंकि यह काम करने के लिए लग रहा था, लेकिन यह वास्तव में समस्या को हल नहीं करता है।
git remote set-head origin --auto
git prune(जैसा कि पहले कमांड आउटपुट में सुझाया गया था), इसलिए मैं यह बताने में सक्षम नहीं हूं कि मुझे क्या मदद मिली - पहला, दूसरा, या दोनों।
git remote set-head origin --autoतय मेरे रेफरी / remotes / मूल / HEAD फ़ाइल मेरे बिना उपयोग करने के लिएgit prune
error: Multiple remote HEAD branches. Please choose one explicitlyऔर git remote set-head origin mybranchदूर जाने के लिए त्रुटि प्राप्त करने के लिए (जबकि 'mybranch' शाखा को चेकआउट किया गया था) का उपयोग करना पड़ा ।
ऐसा लगता है कि आपका प्रतीकात्मक-रेफ टूट सकता है ... इसे अपनी डिफ़ॉल्ट शाखा के साथ इस तरह बदलने का प्रयास करें: उदाहरण के लिए, मेरी शाखा शाखा मास्टर है
$ git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/master
$ git fetch --prune
$ git gc
इसे ठीक करना चाहिए।
मेरे लिए इसका कारण विंडोज में एक संपीड़ित फ़ोल्डर में काम करना था। जब फ़ोल्डर को असम्पीडित किया गया था, तो उसने पैक फ़ाइलों को दूषित कर दिया, अन्य विषम मुद्दों को कैस्केडिंग किया, जैसे कि कोई भी समीपवर्ती शाखाओं को प्रून करने में सक्षम नहीं है।
एकमात्र सुधार था कार्यशील निर्देशिका को मिटा देना और रेपो रिमोट (एस) को फिर से क्लोन करना। सौभाग्य से, मैं अभी भी कुछ भी नहीं खो गया था सुनिश्चित करने के लिए अद्यतन धक्का और खींच सकता है। अभी सब ठीक है।
masterको एक से दूसरे में बदल दियाdevelop। दिन इससे पहले कि मैं से वापस इसे बदलनेdevelopके लिएmasterऔर मैं पुराने डिफ़ॉल्ट शाखा नष्ट कर दियाdevelop, लेकिन मेरे काम कर निर्देशिका में, फ़ाइल.git/refs/remotes/origin/HEADअभी भी की ओर इशारा करते थाrefs/remotes/origin/developअब मौजूद नहीं है जो। इस स्थिति में फ़ाइल को निकालने से काम चल गया।