2010-11-20 7 views
70

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

पुल कहते हैं: "पहले से ही अप-टू-डेट"

धन्यवाद

+0

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

+0

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

उत्तर

108

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

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

git checkout HEAD <path> 

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

git checkout HEAD^ <path> 

लेकिन अगर यह n करता है पहले HEAD~n का उपयोग करें, या बस gitk ऊपर आग, उचित की SHA1 प्रतिबद्ध मिल जाए, और में पेस्ट

+1

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

+0

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

2

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

23

git checkout filename

git reset --hard चाल के साथ-साथ

+5

'गीट रीसेट - हार्ड' विधि का उपयोग करने में चेतावनी दे रहा है क्योंकि यह पूरे पेड़ को वापस w/e स्थान पर वापस लाएगा जिसे आपने HEAD/HEAD ^/HEAD ~ n रखा है और यह इसे पूर्वाग्रह/ओ पूर्वाग्रह करेगा और संभावित रूप से खो देगा बहुत सारे काम करता है ... – g19fanatic

+0

गिट रीसेट - मेरे लिए काम कर रहा है, धन्यवाद लड़का :) –

+0

गिट चेकआउट फ़ाइल नाम मेरे लिए जवाब था :) – Ruub

12

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

$ git checkout -f HEAD 
+0

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

0

मजबूर कर सकते हैं इसके अलावा, मैं निम्न चरणों को ऐसा करने के लिए जोड़ सकते हैं ताकि Git रेपो सही ढंग से IDE के साथ जोड़ा जायेगा:

$ git reset <commit #> 

$ git checkout <file/path> 

मुझे आशा है कि यह सहायक होगा !!

0

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

$ git checkout HEAD . 

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

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

अधिक जानकारी के लिए documentation चेकआउट करें।

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