क्या गिट में एक प्रतिबद्ध फ़ाइल को वापस करने की संभावना है? मैंने GitHub के लिए एक प्रतिबद्ध किया है और फिर मुझे एहसास हुआ कि एक फाइल है जिसे मैं धक्का नहीं देना चाहता था (मैंने परिवर्तनों को समाप्त नहीं किया है)।
क्या गिट में एक प्रतिबद्ध फ़ाइल को वापस करने की संभावना है? मैंने GitHub के लिए एक प्रतिबद्ध किया है और फिर मुझे एहसास हुआ कि एक फाइल है जिसे मैं धक्का नहीं देना चाहता था (मैंने परिवर्तनों को समाप्त नहीं किया है)।
जवाबों:
अद्यतन: सुरक्षित तरीका जोड़ा गया
अपनी फ़ाइल की पिछली (अपरिवर्तित) स्थिति देखें; डबल डैश पर ध्यान दें
git checkout HEAD^ -- /path/to/file
इसे प्रतिबद्ध करें:
git commit -am "revert changes on this file, not finished with it yet"
यह धक्का, कोई बल की जरूरत:
git push
अपने अधूरे काम पर वापस जाएं, फिर से करें (3 बार तीर मारें):
git checkout HEAD^ -- /path/to/file
रिपॉजिटरी HEAD के अंतिम कमिट को संशोधित करने के लिए, अपने आकस्मिक रूप से धकेल दिए गए कार्य को बाधित करते हुए, संभवतः अपने सहकर्मी के साथ संघर्ष में भाग लेना, जिसने इसे पहले ही खींच लिया हो, और जो भूरे बाल उगाएगा और अपने स्थानीय शाखा प्रमुख को समेटने की कोशिश में बहुत समय गंवा देगा। केंद्रीय एक के साथ:
अंतिम परिवर्तन से फ़ाइल परिवर्तन को हटाने के लिए:
अंतिम प्रतिबद्ध से पहले राज्य में फ़ाइल को वापस करने के लिए, करें:
git checkout HEAD^ /path/to/file
अंतिम फ़ाइल को अद्यतन करने के लिए, क्या करें:
git commit --amend
रेपो में अपडेट की गई कमिट को पुश करने के लिए:
git push -f
वास्तव में, पहले बताई गई पसंदीदा विधि का उपयोग करने पर विचार करें।
git checkout HEAD~2 /path/to/file? संपादित करें: लगता है कि मैं अपने मामले में जो चाहता था वह बस थाgit rm /path/to/file
यदि आप फ़ाइल को दूरस्थ रेपो से हटाना चाहते हैं, तो पहले इसे अपने प्रोजेक्ट से हटा दें - कैश विकल्प और फिर इसे पुश करें:
git rm --cache /path/to/file
git commit -am "Remove file"
git push
(यह तब भी काम करता है जब फ़ाइल को कुछ समय पहले रिमोट रेपो में जोड़ा गया था) फ़ाइल एक्सटेंशन को .gitignore में जोड़ना याद रखें जिसे आप पुश नहीं करना चाहते हैं।
आप किसी निर्दिष्ट संशोधन में केवल एक फ़ाइल को वापस कर सकते हैं।
पहले आप जांच कर सकते हैं कि कौन सा फ़ाइल बदल गया था।
git log path/to/file.txt
फिर आप रिवीजन नंबर के साथ फाइल को चेकआउट कर सकते हैं।
git checkout 3cdc61015724f9965575ba954c8cd4232c8b42e4 /path/to/file.txt
उसके बाद आप इसे फिर से पुश कर सकते हैं।
फ़ाइल को एक सही स्थिति में रीसेट करें, कमिट करें, और फिर से पुश करें।
यदि आप सुनिश्चित हैं कि किसी और ने आपके परिवर्तन अभी तक नहीं लिए हैं, तो आप --amendअपनी पिछली प्रतिबद्धताओं (यानी इतिहास को फिर से लिखना) को संशोधित करने के लिए, और फिर धक्का दे सकते हैं। मुझे लगता है कि आपको -fधक्का देने के लिए विकल्प का उपयोग करना होगा , हालांकि जोर लगाने के लिए।
अंतिम प्रतिबद्ध का हैश कोड प्राप्त करें।
git log git revert <hash_code_from_git_log>git pushGHR में देखें। आपको कभी भी आपकी आवश्यकता हो सकती है, आशा है कि यह उपयोगी है