2012-08-16 14 views
17

पर वापस जाएं, मैं अतीत में एक विशिष्ट प्रतिबद्धता से फ़ाइल देखना चाहता हूं, मैं git reset --hard के बारे में सोच रहा हूं लेकिन मैं उससे परे काम नहीं देख पाऊंगा प्रतिबद्ध। मैं एक प्रतिबद्धता पर वापस कैसे जा सकता हूं (फाइलों की स्थिति के साथ), फाइलों पर एक नज़र डालें, फिर से वर्तमान में जाएं?किसी विशिष्ट प्रतिबद्धता पर वापस जाएं, फिर वर्तमान

git checkout a1b2c3 

... और साथ master पर लौटने:

+1

आप केवल एक फ़ाइल देखने के लिए 'गिट शो प्रतिबद्ध: पथ/फ़ाइल' कर सकते हैं। – fork0

+0

मैंने कई फाइलों पर एक नज़र डाली, हे। और मुझे इसे एक टेक्स्ट एडिटर के साथ बेहतर पसंद है। धन्यवाद हालांकि, अगली बार यह आसान होगा! – Michelle

उत्तर

31

मान लीजिए कि आपकी वर्तमान शाखा master है और पुराने प्रतिबद्ध a1b2c3, तो आप वापस पुराने करने के लिए अपने काम के पेड़ में सभी फाइलों को बदल सकते हैं के साथ प्रतिबद्ध है :

git checkout master 

अपना Git इतिहास में के बारे में हॉपिंग (यानी बाहर की जाँच अपनी वस्तु का नाम, भी अपने हैश या sha1sum के रूप में जाना के साथ एक प्रतिबद्ध) की इस तरह से पिछले एक अच्छाके लिए प्रतिबद्ध को खोजने के लिए बहुत उपयोगी है 0, उदाहरण के लिए, क्योंकि यह आपकी शाखाओं को नहीं ले जायेगा।

ध्यान में रखना एक बात यह है कि ऐसा करने पर आपको संभावित रूप से भ्रमित चेतावनी मिल जाएगी: यदि आप अपने ऑब्जेक्ट नाम (a1b2c3) से कोई प्रतिबद्धता देखते हैं जो आपको "अलग सिर" के नाम से जाना जाता है , जहां HEAD, जो आम तौर पर आपकी वर्तमान शाखा का प्रतिनिधित्व करता है, बल्कि सीधे किसी विशेष प्रतिबद्धता को इंगित करता है। यह चिंता करने की बात नहीं है - यह आपके इतिहास में जाने के लिए बहुत उपयोगी है - लेकिन इसका मतलब यह है कि यदि आप HEAD अलग हो जाते हैं तो वे नई गतिविधियां बनाते हैं, वे शाखा को आगे नहीं ले जाएंगे।


fork0 संभावित रूप से उपयोगी शॉर्टकट git checkout - नीचे टिप्पणी है, जो पिछले शाखा देखें या प्रतिबद्ध है कि HEAD की दिशा में रखे जाएगा में बताते हैं।

+0

आदमी मैं क्या सोच रहा था? धन्यवाद। – Michelle

+0

कोई समस्या नहीं - मुझे आशा है कि मैंने जो अतिरिक्त टिप्पणियां जोड़ दी हैं, वे उपयोग की हैं। –

+4

पिछली प्रतिबद्धता पर वापस जाने का एक सुरक्षित तरीका है: 'गिट चेकआउट -'। यह विधि चेकआउट लॉगिंग (.git/logs/HEAD) का उपयोग करती है और सुरक्षित रूप से निर्धारित कर सकती है कि पिछली प्रतिबद्धता क्या थी। – fork0

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