चूंकि आपने पहले ही रिमोट रिपोजिटरी में काम करने को धक्का दिया है, इसलिए संभवतः दो कामों को वापस करने का सबसे अच्छा तरीका है ताकि आप किसी भी व्यक्ति के लिए कोई समस्या न पैदा कर सकें जो पहले ही रिमोट रिपोजिटरी से खींचा गया हो।
उदाहरण निम्न प्रतिबद्ध इतिहास का उपयोग करें:
git revert e512d38
git revert bd89039
वैकल्पिक रूप से, अगर आप डॉन ':
e512d38 Adding taunts to management.
bd89039 Adding kill switch in case I'm fired.
da8af4d Adding performance optimizations to master loop.
db0c012 Fixing bug in the doohickey
तुम सिर्फ इतिहास को संशोधित किए बिना प्रतिबद्ध वापस करना चाहते हैं, तो आप निम्न कर सकते हैं टी दूसरों को यह देखना नहीं चाहता कि आपने हत्या स्विच जोड़ा है और फिर इसे हटा दिया है, आप निम्नलिखित का उपयोग करके भंडार वापस रोल कर सकते हैं (हालांकि, इससे उन लोगों के लिए समस्याएं पैदा हो सकती हैं जिन्होंने पहले ही रिमोट से अपने बदलाव खींचे हैं):
git reset --hard da8af4d
git push origin -f localBranch:remoteBranch
जहां localBranch
स्थानीय शाखा का नाम है और remoteBranch
रिमोट शाखा का नाम है।
स्रोत
2012-03-16 03:21:29
आप * ऐसा कर सकते हैं, लेकिन यह अचूक है क्योंकि इस दौरान काम करने वाले किसी भी व्यक्ति को ... बुरा शब्द से बचने के लिए, अच्छा कहें, "उन्हें अपने कार्यों से ठीक होने के लिए कड़ी मेहनत करनी होगी । " :-) एक नई प्रतिबद्धता को जोड़ने के लिए "गिट रिवर्ट" का उपयोग करना बेहतर है जो पिछली प्रतिबद्धता को पूर्ववत करता है। ("रिवर्ट" के बारे में सोचें "एक प्रतिबद्धता जोड़ें जिसका पैच पिछली प्रतिबद्धता को पूर्ववत करने की क्रिया है," क्योंकि यह वही है।) – torek
@torek मैं पहले इस बारे में सोच रहा था, लेकिन मुझे लगता है कि शैडोफ़ैक्स के पास अन्य हो सकता है उद्देश्यों, जैसे हर दूरस्थ प्रतिबद्धता को सही ढंग से चलाने में सक्षम रखने के लिए, अन्यथा वह 'वापसी और धक्का' के बारे में सोचा होगा। – peter
मुझे लगता है कि आप आश्चर्यचकित हो सकते हैं कि कितने लोग 'गिट रिवर्ट' नहीं समझते हैं।दूसरी ओर, एक पूरी तरह से अलग उद्देश्य हो सकता है (जैसे डेविड एम। सिज़डेक के जवाब में)। कुछ मामलों में कोई अच्छा समाधान नहीं होता है, केवल कम से कम बुरे (जो प्रति स्थिति बदलता है)। – torek