2016-07-15 28 views
5

से काम करने के लिए कैसे हटाएं मैंने अपने Django परियोजना में मेरी .idea निर्देशिका से फ़ाइलों को गलती से धक्का दिया जो मेरे पास .gitignore फ़ाइल में था। मैं अपने बिटबकेट रिपोजिटरी से पूरी तरह से प्रतिबद्धता को हटाने की कोशिश कर रहा हूं क्योंकि कोई और मैं प्रोजेक्ट पर काम कर रहा हूं और वह अपनी खुद की .idea फ़ाइलों को प्रभावित किए बिना मेरे परिवर्तन नहीं खींच सकता है। मैंने अन्य SO प्रश्नों को देखा है जहां वे गिट रिवर्ट का उपयोग करने के लिए कहते हैं, हालांकि मुझे याद है कि एक और कमांड था जहां आपने आखिरी अच्छी प्रतिबद्धता को धक्का दिया था, और उसके बाद सबकुछ मास्टर शाखा से हटा दिया गया था। उदाहरणबिटबकेट

के लिए इतिहास प्रतिबद्ध:

94ca48e

55fab05

मैं 94ca48e हटाना चाहते हैं, और 55fab05। एक बार मुझे एक आदेश मिला जहां आप 3813803 को सबसे अधिक मौजूदा प्रतिबद्ध बना सकते थे, और उस प्रतिबद्धता के बाद रिमोट रिपोजिटरी में सबकुछ हटा दिया जाएगा, लेकिन मुझे इसे कहीं भी नहीं मिला।

उत्तर

5

git reset --hard 3813803 का उपयोग करें। यह पूर्ववत नहीं किया जा सकता है और स्थानीय रूप से और दूरस्थ रूप से काम करता है।

एटलसियन here द्वारा गिट डॉकू पर एक नज़र डालें।

मुझे भी वहाँ से उद्धृत करते हैं:

जबकि वापस लाने में सुरक्षित रूप से एक सार्वजनिक पूर्ववत करने के लिए डिज़ाइन किया गया है के लिए प्रतिबद्ध, Git रीसेट स्थानीय परिवर्तनों को पूर्ववत करने के लिए बनाया गया है। उनके विशिष्ट लक्ष्यों के कारण, दो आदेश अलग-अलग कार्यान्वित किए जाते हैं: रीसेट करना पूरी तरह से एक परिवर्तन को हटा देता है, जबकि रिवर्टिंग मूल परिवर्तन को बनाए रखता है और पूर्ववत करने के लिए एक नई प्रतिबद्धता का उपयोग करता है।

git reset यहां उपयोग किया जाने वाला एक है, हालांकि, क्योंकि आप पूरी तरह से हटाने के लिए कह रहे हैं।

+0

मुझे लगता है कि यह स्थानीय रूप से काम करता है क्योंकि यह कहता है कि "आपकी शाखा पीछे है 'मूल/समर2016' 4 काम करता है, और इसे तेजी से अग्रेषित किया जा सकता है।" लेकिन मैं वही कैसे कर सकता हूं जो मैं दूरस्थ रूप से करता हूं? – JBT

+9

@ टिमोथी जोसेफबेनी: 'गिट पुश - फोर्स मूल मास्टर' का प्रयोग करें। – Sumit

+0

ध्यान रखें कि यदि आप अपने रेपो पर अकेले नहीं हैं तो यह सब एक अच्छा विचार नहीं है! – harmonica141