विजुअल स्टूडियो में एक अप्रकाशित आउटगोइंग कमिट को कैसे हटाया जाए?


114

मैंने गलती से Visual Studio 2017 में एक नई शाखा में अपने स्थानीय रिपॉजिटरी में एक मंचित परिवर्तन को धकेल दिया। इसे दूरस्थ रिपॉजिटरी में नहीं भेजा गया है। मैं इससे छुटकारा पाना चाहता हूं लेकिन ऐसा करने का कोई तरीका नहीं खोज सकता। मैंने स्थानीय मास्टर शाखा से नई शाखा के लिए विद्रोह किया। फिर मैंने नई शाखा को हटा दिया। लेकिन आउटगोइंग कमिट्स अभी भी इसे दिखाता है। इसे कैसे हटाएं या इसे वापस लाएं?

यहां छवि विवरण दर्ज करें


इस सवाल के लिए धन्यवाद, मेरे पास एक ही सवाल था
इमरान रिज़वी

जवाबों:


178

शाखाओं की टाइल से टीम एक्सप्लोरर में इतिहास टैब खोलें (अपनी शाखा पर राइट-क्लिक करें)। फिर इतिहास में आप जिसको पुश नहीं करना चाहते, उसके पहले कमिट पर क्लिक करें, रीसेट चुनें। वह शाखा को उस कमिट में वापस ले जाएगा और आपके द्वारा किए गए अतिरिक्त कमिट से छुटकारा पाना चाहिए। किसी दिए गए वचन से पहले रीसेट करने के लिए आपको इस प्रकार इसके मूल का चयन करना होगा।

क्या आप परिवर्तनों के साथ क्या करना चाहते हैं पर निर्भर करता है का चयन मुश्किल जो उनमें से स्थानीय स्तर पर छुटकारा मिल जाएगा। या नरम चुनें जो कमिट करेगा, लेकिन आपकी डिसकस कमिट में बदलाव के साथ आपकी वर्किंग डायरेक्टरी छोड़ देगा।


22
वर्थ को उस हिस्से में डालने के लिए जहां ** आपको गड़बड़ किए गए कमिट के हिस्से पर RESET का विकल्प चुनना है - - विचित्र रूप से VS2017, आपके द्वारा कमिट करने के बाद, आपको एक मेनू विकल्प प्रदान करता है जो कमिट पर रीसेट टारगेट को पूरा करता है। आपने अभी-अभी (नो-ऑप) किया - मैंने कुछ मिनटों का समय बिताया है जब मैंने आपका पद पाया और महसूस किया कि मेरे पास रीसेट होना चाहिए [पैरेंट कमिट के लिए .. मेनू विकल्प "रीसेट" होना थोड़ा खराब शब्द है - ऐसा लगता है किसी विशेष कमिट को फिर से सेट करना == यह सुनिश्चित करना कि इसका इस्तेमाल उस कमिट पर किया जाए। यदि यह रीसेट टू आई रेकन होता तो मैं इसे तेजी से समझ
पाता

1
(@JH) उत्तर के लिए धन्यवाद। .. atCJ टिप्पणी के लिए धन्यवाद। atJH उस भाग को बोल्ड-आईएनजी के लिए धन्यवाद ... atEverybody .... यही वह हिस्सा है जिस पर मैं फंस गया था .... और मेरा मतलब है अटक गया। #freedom
granadaCoder

नामकरण इस बात के अनुरूप है कि कैसे git कमांड को कॉल करता है। यदि आपने फ़ाइलें संपादित की हैं, तो वे रीसेट भी हो जाएंगे। यदि आपने फ़ाइलों का मंचन किया है, तो उन्हें रीसेट भी मिल जाएगा। यही कारण है कि नवीनतम प्रतिबद्ध पर भी एक रीसेट है। यह उस कमिट को रीसेट करता है
jessehouwing

1
जानने के लिए उपयोगी। उत्तर के लिए धन्यवाद
रोब सी

धन्यवाद आलोट इट हेल्प्सडे
आशीष कांबले

70

मुझे एक भी अच्छा जवाब नहीं मिला जिससे मुझे इस मुद्दे से छुटकारा पाने में मदद मिली।

मान लीजिए कि आपने शाखा का नाम गलती से बदल दिया है master। निम्नलिखित चार सरल कदम मेरे लिए एक दुनिया की तरह साबित हुए:

  1. शाखाओं में जाएँ
  2. के अलावा किसी भी शाखा को चुनें या बनाएं master
  3. का स्थानीय / कार्यक्षेत्र संस्करण हटाएं master
  4. से मास्टर करने के लिए स्विच करें remotes/origin

5
यह वह जवाब है जो काम करता है, आपको revert
21-41 बजे

2
यह काम करता है, लेकिन आप तब अटक जाते हैं जब आप केवल आउटगोइंग कमिट्स से कुछ (सभी नहीं) विशिष्ट चाहते हैं।
कटारिया

1
बस कुछ ही डाउनवोट मिले। टिप्पणियाँ बहुत अच्छा होता।
कैओस लीजन

1
काम करता है। स्वच्छ, तेज और सरल उपाय।
टॉम टॉम

2
OMG धन्यवाद! कभी भी मैंने 45 मिनट पूर्ववत परिवर्तन नहीं किए हैं, आज रात तक। आपकी टिप्पणी दिन बचाता है।
पीबीजे

3

यह मानते हुए कि आपने सर्वर में हाल के बदलावों को आगे बढ़ाया है:

  1. विज़ुअल स्टूडियो को बंद करें और परियोजना की अपनी स्थानीय प्रति हटाएं
  2. विज़ुअल स्टूडियो खोलें, टीम एक्सप्लोरर टैब पर जाएं, कनेक्शन प्रबंधित करें पर क्लिक करें। (प्लग)
  3. कनेक्शंस प्रबंधित करें, कनेक्ट टू ए प्रोजेक्ट के बगल में ड्रॉपडाउन तीर पर क्लिक करें
  4. प्रोजेक्ट का चयन करें, स्थानीय पथ की पुष्टि करें, और कनेक्ट बटन पर क्लिक करें।

एक बार जब आप इस परियोजना को फिर से शुरू करते हैं तो दोनों को शून्य और परिवर्तन शून्य होना चाहिए।


2

टी एल; डॉ:

git reset --soft HEAD~.Sln फ़ोल्डर से cmd में उपयोग करें


मैं आज इसका सामना कर रहा था और अभिभूत था जो VSCodeइस तरह की बात का सुझाव देता है, जबकि यह बड़ा भाई Visual Studioनहीं है।

अधिकांश उत्तर सहायक थे; अगर मेरे पास पहले से किए गए अधिक अपराध हैं, तो उन सभी को खोने से निराशा होगी। इसके अलावा, अगर VSCodeयह आधे से एक सेकंड में होता है , तो यह जटिल नहीं होना चाहिए।

केवल एक सरल समाधान के सबसे करीब jessehouwing का जवाब था।


अनिर्धारित प्रतिबद्ध (ओं) को मानते हुए, ऐसा करने वाला अंतिम व्यक्ति था, यहां बताया गया है कि मैंने इसे कैसे हल किया:

Team Explorer-> पर जाएं Sync। आप सभी कमिट्स देखेंगे। Actionsड्रॉपडाउन दबाएं औरOpen Command Prompt

अवांछित-प्रतिबद्ध-हल किया हुआ उदाहरण

आपके पास cmd विंडो होगी, वहां लिखें git reset --soft HEAD~। यदि कई अवांछित कमिट हैं, तो ~(यानी git reset --soft HEAD~5) के बाद राशि जोड़ें


(यदि आप उपयोग नहीं कर रहे हैं git, तो बोलचाल की जाँच करें)।

मुझे उम्मीद है कि यह मदद करेगा, और उम्मीद है कि अगले संस्करण में वीएस टीम इसे बिलियन जोड़ देगी


0

टीम एक्सप्लोरर टैब पर जाएं फिर शाखाओं पर क्लिक करें। शाखाओं में अपनी शाखा को रीमोट / मूल से चुनें। उदाहरण के लिए, आप अपनी मास्टर शाखा को रीसेट करना चाहते हैं। रेमोट्स / मूल में मास्टर ब्रांच पर राइट-क्लिक करें और फिर Reset चुनें फिर डिलीट चेंजेस पर क्लिक करें। यह आपकी स्थानीय शाखा को रीसेट कर देगा और स्थानीय रूप से किए गए सभी परिवर्तनों को हटा देगा।


0

अपने रिमोट / ओरिजिनल मास्टर ब्रांच पर अपनी स्थानीय मास्टर ब्रांच को रिजेक्ट करने की कोशिश करें और प्रक्रिया में आने वाले किसी भी विवाद को हल करें।


-1

आपके पास यह करने के लिए 2 विकल्प हैं कि या तो अपने सभी आउटगोइंग कमिट्स को छोड़ दें या विशिष्ट कमेंट को पूर्ववत करें।

1- अपने सभी आउटगोइंग कमिट्स को छोड़ दें:

अपने सभी आउटगोइंग कमिट्स को छोड़ने के लिए उदाहरण के लिए यदि आपके पास दूरस्थ शाखा से मास्टर नाम की स्थानीय शाखा है, तो आप यह कर सकते हैं:

1- अपनी स्थानीय शाखा को मास्टर से किसी भी चीज़ का नाम दें ताकि आप उसे हटा सकें। 2- पुनर्नामित शाखा को हटा दें। 3- गुरु से नई शाखा बनाएं

तो अब आपके पास आपके आने के बिना एक नई शाखा है ।।

2- पूर्ववत विशिष्ट प्रतिबद्ध करें: विशिष्ट प्रतिबद्ध को पूर्ववत करने के लिए आपको अनावश्यक द्वारा वापस करना होगा:

1- अनलाइड कमिट पर डबल क्लिक करें। अनावश्यक प्रतिबद्ध पर डबल क्लिक करें 2- रिवर्ट पर क्लिक करें रिवर्ट पर क्लिक करें

लेकिन FYI करें वापस किए गए कमिट आपके इतिहास के इतिहास में दिखाई देंगे।

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