2012-12-14 3 views
17

मेरे गिट भंडार की मास्टर शाखा में अंतिम विलय के बाद मैंने भंडार क्लोन करने की क्षमता खो दी है।गिट रेफ/रिमोट/मूल/मास्टर मान्य ऑब्जेक्ट को इंगित नहीं करता

 
Cloning into test-repository... 
remote: Counting objects: 126084, done. 
remote: Compressing objects: 100% (28327/28327), done. 
Receiving objects: 100% (126084/126084), 132.63 MiB | 29.30 MiB/s, done. 
remote: Total 126084 (delta 96101), reused 126078 (delta 96095) 
Resolving deltas: 100% (96101/96101), done. 
error: refs/remotes/origin/master does not point to a valid object! 
error: Trying to write ref refs/heads/master with 
     nonexistant object 951aca8051823b2f202d30c9cb05401ef17618c6 

Fisheye, भंडार की मेजबानी उपकरण, रिपोर्ट कर रहा है:

 
Unable to fetch from remote repository: 
/var/atlassian/application-data/fisheye/managed-repos/MYREPONAME.git 
error: unable to find 0d998c99b6d01e8aabca72b1934802acf90b8fc9, 
fatal: object 0d998c99b6d01e8aabca72b1934802acf90b8fc9 not found 

पिछले मास्टर शाखा पर भंडार में प्रतिबद्ध है:

 
commit 0d998c99b6d01e8aabca72b1934802acf90b8fc9 
Merge: a6ea4b3 1f373a9 
Date: Fri Dec 14 13:57:24 2012 +0200 

Merge branch 'new_error_code' 

मैं कोशिश की है:

cd /var/atlassian/application-data/fisheye/managed-repos/MYREPONAME.git 
git gc 
git fsck --full 
git reflog expire --expire=0 --all 
git update-ref 
git gc --aggressive 

निम्नलिखित प्रश्न थे मेरे मामले में मदद नहीं:

उत्तर

29
git gc 
git fsck --full 
git reflog expire --expire=0 --all 
git update-ref -d 0d998c99b6d01e8aabca72b1934802acf90b8fc9 
git gc --aggressive 
git remote update --prune 

और यह काम किया!

+0

यह बहुत धीमी है और क्लोन एक से अधिक लागत है। – suiwenfeng

+3

@ मैट क्या आप यहां और क्या हो सकता है विस्तार से बता सकते हैं? – andi

+0

बिल्कुल कोई स्पष्टीकरण नहीं। आपको सोचना चाहिए कि भविष्य में अधिक लोगों को इसकी आवश्यकता हो सकती है = \ – PlayHardGoPro

1

आमतौर पर आप कर सकते हैं:

git reflog master 

यह आपको पिछले पता पदों की एक सूची दे देंगे कि मास्टर ने इंगित किया है।

एक बार जब आप जानते हैं कि यह आप यानी

git branch temp [email protected]{1} 

तो चेकआउट अस्थायी मास्टर के एक पुराने संस्करण के लिए एक अस्थायी शाखा बना सकते हैं और अगर यह उचित क्रम में है देख सकते हैं। यदि आप वहां कुछ भी नहीं देखते हैं तो आपके द्वारा पहले किए गए आदेश (रीफ्लॉग को हटाएं, खतरनाक कामों को हटाएं, आदि) ने संभवतः पुनर्प्राप्ति के सभी तरीकों को मिटा दिया है।

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