खोज…


टिप्पणियों

हर बार परिवर्तन होने पर जीआईटी का रिफ्लॉग HEAD (रिपॉजिटरी की वर्तमान स्थिति के लिए रेफ) की स्थिति को रिकॉर्ड करता है। आम तौर पर, हर ऑपरेशन जो विनाशकारी हो सकता है, उसमें HEAD पॉइंटर को स्थानांतरित करना शामिल होता है (क्योंकि अगर कुछ भी बदला जाता है, तो अतीत में, टिप कमिट का हैश बदल जाएगा), इसलिए एक खतरनाक ऑपरेशन से पहले एक पुराने राज्य में वापस लौटना संभव है। , रिफ्लॉग में सही लाइन का पता लगाकर।

जिन वस्तुओं को किसी भी रेफरी द्वारा संदर्भित नहीं किया जाता है, वे आमतौर पर ~ 30 दिनों में एकत्र किए गए कचरा होते हैं, हालांकि, इसलिए रिफ्लग हमेशा मदद करने में सक्षम नहीं हो सकता है।

खराब रिबास से वसूली

मान लीजिए कि आपने एक इंटरैक्टिव रिबेस शुरू किया था:

git rebase --interactive HEAD~20

और गलती से, आपने कुछ ऐसे कमिट किए, जिन्हें आपने खोना नहीं चाहा, लेकिन फिर से पूरा कर दिया। ठीक होने के लिए, git reflog , और आपको कुछ आउटपुट इस तरह दिखाई दे सकते हैं:

aaaaaaa HEAD@{0} rebase -i (finish): returning to refs/head/master
bbbbbbb HEAD@{1} rebase -i (squash): Fix parse error
...
ccccccc HEAD@{n} rebase -i (start): checkout HEAD~20
ddddddd HEAD@{n+1} ...
...

इस मामले में, अंतिम प्रतिबद्ध, ddddddd (या HEAD@{n+1} ) आपकी पूर्व-विद्रोही शाखा का टिप है। इस प्रकार, उस कमिट को पुनर्प्राप्त करने के लिए (और सभी माता-पिता कमिट करते हैं, जिनमें गलती से स्क्वैस्ड या गिरा हुआ भी शामिल है), करें:

$ git checkout HEAD@{n+1}

फिर आप git checkout -b [branch] साथ उस पर एक नई शाखा बना सकते हैं। अधिक जानकारी के लिए ब्रांचिंग देखें।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow