Git - स्थानीय रूप से कुछ फ़ाइलों को हटा दिया गया, मैं उन्हें दूरस्थ रिपॉजिटरी से कैसे प्राप्त करूं


109

मैंने अपने पीसी पर कुछ फाइलें हटा दी हैं, मैं उन्हें फिर से कैसे डाउनलोड करूं?

पुल कहता है: "पहले से ही अद्यतित"।


1
आपको "उन्हें फिर से डाउनलोड करने" की आवश्यकता नहीं है, क्योंकि जब आप Git का उपयोग कर रहे होते हैं तो सभी रिपॉजिटरी इतिहास स्थानीय रूप से मौजूद होते हैं।
cdhowie

क्या आप जानते हैं कि उन्हें स्थानीय से कैसे प्राप्त किया जाए?
चार्ली पार्कर

जवाबों:


162

चूँकि git एक वितरित VCS है, इसलिए आपके स्थानीय भंडार में सारी जानकारी होती है। कोई डाउनलोड करना आवश्यक नहीं है; आपको बस अपनी उंगलियों पर रेपो से इच्छित सामग्री निकालने की आवश्यकता है।

यदि आपने विलोपन नहीं किया है, तो अपनी वर्तमान कमेटी से फ़ाइलों की जाँच करें:

git checkout HEAD <path>

यदि आपने डिलीट कर दिया है, तो आपको उन कमिट से फाइलों को जांचना होगा जो उनके पास हैं। संभवतः यह पिछली प्रतिबद्धता होगी:

git checkout HEAD^ <path>

लेकिन अगर यह nकमिट करता है, तो उपयोग करें HEAD~n, या बस फायर करें , gitkउपयुक्त कमेंट का SHA1 ढूंढें, और इसे पेस्ट करें।


2
सिर्फ एक टिप्पणी के रूप में, यह एक पूर्ण निर्देशिका के लिए भी काम करता है, इसकी एक फ़ाइल के लिए विशेष या विशिष्ट नहीं (यह काम किया जब मैंने इसे कम से कम करने की कोशिश की)। Thnx btw।
चार्ली पार्कर

5
एनबी <path>अनिवार्य है, भले ही .वर्तमान डायर के लिए सिर्फ डॉट। लेकिन "शाखा" ( HEADउपरोक्त उदाहरण में) वैकल्पिक है। इतने सारे Git कमांड के साथ, न तो आउटपुट और न ही मददगार है।
मार्कहु

39

git checkout filename

git reset --hard चाल भी कर सकते हैं


9
इस git reset --hardविधि का उपयोग करने में चेतावनी के रूप में कि पूरे पेड़ को वापस w / e स्थान पर वापस ले जाएँगे जहाँ आप HEAD / HEAD ^ / HEAD ~ n
डालेंगे

git चेकआउट फाइलनेम मेरे लिए उत्तर था :)
Ruub

git checkout फ़ाइल नाम केवल एक खाली फ़ाइल बनाता है
15

वांछित फ़ोल्डर में रखा और git checkount .एक आकर्षण की तरह काम किया!
hzitoun

21

यदि आपने स्थानीय रूप से कई फ़ाइलों को हटा दिया है, लेकिन प्रतिबद्ध नहीं हैं, तो आप चेकआउट को बाध्य कर सकते हैं

$ git checkout -f HEAD

जैसा कि हम आउटपुट "पहले से ही अद्यतित" से देखते हैं, इस प्रश्न को पूछने वाले व्यक्ति ने हाल ही में कुछ भी नहीं किया है। क्या आपको यह निर्दिष्ट करना चाहिए कि git checkout -f HEAD DANGEROUS है? चूंकि यह स्थानीय परिवर्तन पूर्ववत कर सकता है (पिछली फ़ाइलों को सकारात्मक परिणाम के रूप में पुनर्स्थापित कर रहा है, संपादित फ़ाइलों पर नकारात्मक को खोना नकारात्मक है)।
लियोनेल ट्रेबुचॉन

15

यदि आपने स्थानीय रूप से कई फ़ाइलों को हटा दिया है और परिवर्तन नहीं किए हैं, तो अपने स्थानीय रिपॉजिटरी पथ पर जाएं, गिट शेल खोलें और टाइप करें।

$ git checkout HEAD .

अंतिम प्रतिबद्ध से पहले हटाए गए सभी फ़ाइलें पुनर्प्राप्त की जाएंगी।

जोड़ना " वर्तमान रिपॉजिटरी में सभी हटाई गई फ़ाइलों को उनके संबंधित पथ पर पुनर्प्राप्त करेगा।

अधिक जानकारी के लिए दस्तावेज़ीकरण की जाँच करें


2

फ़ाइलों को हटाने से पहले आपको पिछले संस्करण को देखना होगा। git checkout HEAD^अंतिम संशोधन की जांच करने का प्रयास करें ।


0

इसके अलावा, मैं निम्नलिखित चरणों को करने के लिए जोड़ता हूं ताकि गिट रेपो को सही ढंग से आईडीई के साथ जोड़ा जाए:

 $ git reset <commit #>

 $ git checkout <file/path>

मुझे आशा है कि यह मददगार था!!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.