SourceTree में अनकम्यूटेड परिवर्तनों को कैसे छोड़ें?


83

मैं Git पर्यावरण के लिए नया हूँ, और मैं मैक पर SourceTree के साथ BitBucket का उपयोग कर रहा हूँ। अब मैं केवल यही करना चाहता हूं कि अंतिम प्रतिबद्ध होने के बाद से बदलावों को छोड़ दें। मुझे यह कैसे करना चाहिए? मुझे "परिवर्तनों को त्यागने" जैसा कुछ नहीं मिला है, और सीधे अंतिम प्रतिबद्धता से खींचने से काम नहीं लगता है। GUI या कमांड लाइन के साथ किए गए समाधान अच्छे होंगे।


आप अंतिम प्रतिबद्ध को पूर्ववत करना चाहते हैं? या इसे छोड़ दें और उदाहरण के लिए कुछ परीक्षण कारणों के लिए पिछली प्रतिबद्ध जांच करें?
मोहम्मद अबूशैदी

1
@ मोहम्मदअबुशदी मुझे लगता है कि उत्तर न ही है। अंतिम प्रतिबद्ध होने के बाद, मैंने कुछ बदलाव किए हैं जिन्हें मैं छोड़ना चाहता हूं। मैं अपना आखिरी कमिटमेंट चाहता हूं।
गोल्डफ्राप्प04

इसलिए आपने ऐसे परिवर्तन किए हैं जिन्हें आप वापस करना चाहते हैं?
मोहम्मद अबूशैदी

यहां के किसी भी उत्तर ने मुझे मेरे सॉर्सेट्री के शीर्ष पर कष्टप्रद 'अनकम्यूटेड परिवर्तन' प्रविष्टि को हटाने में मदद नहीं की। और एक-एक करके कई अनसर्टेड फाइल्स को त्यागना पड़ा। यहाँ जवाब काम किया: stackoverflow.com/questions/14075581/…
PVS

जब मैं अनस्ट्रेडेड फ़ाइल सूची में राइट-क्लिक आइटम के संदर्भ मेनू विकल्पों के बीच उलझन में था; Discard(Shift + Ctrl + R) और Remove(Ctrl + Del) मुझे लगता है कि Discardजैसे परिवर्तन वापस आ जाएंगे git reset --hardऔर Removeउस फ़ाइल और चरण को हटा देगा जो विलोपन करता है।
रेड मटर

जवाबों:


62

मुझे इस्तेमाल करना पसंद है

git stash

यह स्‍टैश में सभी अनकमिज्‍ड परिवर्तन संग्रहीत करता है । यदि आप बाद में इन परिवर्तनों को त्यागना चाहते हैं git stash drop(या git stash popउन्हें पुनर्स्थापित करना चाहते हैं)।

यद्यपि यह तकनीकी रूप से परिवर्तनों को छोड़ने का "उचित" तरीका नहीं है (जैसा कि अन्य उत्तरों और टिप्पणियों ने बताया है)।

SourceTree : आइकन 'स्टैश' पर शीर्ष बार पर, उसका नाम लिखें और बनाएं। फिर बाएं ऊर्ध्वाधर मेनू में आप सभी स्टैश को "शो" कर सकते हैं और राइट-क्लिक मेनू में हटा सकते हैं। एक बार में सभी फाइलों को छोड़ने के लिए एसटी में कोई दूसरा तरीका नहीं है।


7
अच्छी तरह से अगर आप हर चीज को छोड़ना चाहते हैं तो यह सिर्फ और सिर्फ करना आसान हैgit reset --hard HEAD
मोहम्मद अबूशाही

4
@ कोकोनट मुझे लगता है कि मेरा जवाब "गलत" है क्योंकि यह stashफ़ंक्शन का दुरुपयोग है । मोहम्मद का जवाब सभी परिवर्तनों को छोड़ने का उचित तरीका है।
मैक्स

हां, और इसलिए भी कि मैं यह नहीं देख पाया कि शॉर्टकट कहां है।
रॉबर्टो

3
मुझे यह तरीका पसंद है क्योंकि अगर आप अपना विचार बदलते हैं तो आपको अपने परिवर्तनों को पुनर्स्थापित करने का एक आखिरी मौका मिलता है। मैं शायद ही कभी reset --hard, लेकिन मैं अक्सर अपने बदलावों को नए सिरे से शुरू करने के लिए और बाद में यदि मैं तय करता हूं कि मुझे इसकी आवश्यकता नहीं है, तो छोड़ दें।
मैक्स

इस विधि ने नई असंबद्ध फ़ाइलों को नहीं हटाया। रीसेट और साफ का उपयोग करने की रॉबर्टो की विधि ने उस मामले में बेहतर काम किया।
गैब्रियल जेन्सेन

143

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

Windows के लिए SourceTree पर , उन फ़ाइलों पर राइट क्लिक करें जिन्हें आप त्यागना चाहते हैं ( कार्य प्रतिलिपि परिवर्तन सूची में), और त्यागें चुनें ।

पर Git , तो आप बस करना चाहते हैं:

git reset --hard संस्करण फ़ाइलों में किए गए परिवर्तनों को त्यागने के लिए;

git clean -xdfअनदेखी ( विकल्प) सहित नई ( अनट्रैक ) फ़ाइलों को मिटाने के लिए xdअनट्रेंड निर्देशिकाओं को हटाने और fबल के लिए भी है ।


9
आप बाएं पैनल में संपूर्ण "वर्किंग कॉपी" पर राइट क्लिक कर सकते हैं (या Cmd + Shift + R दबाएं; ;-)
Geo

14
कमाल है कि एक ही कमांड का मैक और विंडोज के लिए एक अलग नाम है। मानो GIT GUI (कमांड लाइन की तुलना में) पहले से ही पर्याप्त भ्रमित नहीं था।
NSTJ

धन्यवाद! मुझे लगता है कि यह सही उत्तर के रूप में वोट किया जाना चाहिए ;-)
हर्नान एबर

@NSTJ: सहमत ... यह बहुत अच्छी तरह से "रीसेट" और "त्यागें" जैसे शब्दों के अनुरूप परिभाषा को असाइन करने की संभावना में किसी के आत्मविश्वास को हिला देता है। यानी एक ऐसी परिभाषा जिस पर आप व्यापक रूप से सहमत होने की उम्मीद कर सकते हैं।
लार्स

7

Unstaged फ़ाइल पर, दाईं ओर तीन डॉट्स पर क्लिक करें। एक बार जब आप इसे क्लिक करते हैं, तो एक पॉपओवर मेनू दिखाई देगा जहां आप तब कर सकते हैं Discard file


2
यह ठीक है जब यह केवल कुछ ही फाइलें होती है, लेकिन बहुत सारी फाइलें होने पर क्या होता है?
इटाई स्पेक्टर

4

ठीक है मैंने देखा कि मेरे सवाल का जवाब पहले से ही दिया गया था।

अस्थिर फ़ाइलों का उपयोग करने के लिए

git reset HEAD /file/name

और एक फ़ाइल में परिवर्तनों को पूर्ववत करने के लिए

git checkout -- /file/name

यदि आपके पास किसी फ़ोल्डर के अंदर फ़ाइलों का एक बैच है, तो आप पूरे फ़ोल्डर को पूर्ववत कर सकते हैं

git checkout -- /folder/name

ध्यान दें कि ये सभी कमांड आपको पहले से ही प्रदर्शित हैं git status

यहां मैंने एक डमी रेपो बनाया और सभी 3 संभावनाओं को सूचीबद्ध किया

# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   test
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   test2
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       test3

3

Sourcetree gui पर क्लिक करके काम करने वाले निर्देशन पर क्लिक करें, उस फ़ाइल पर क्लिक करें जिसे आप छोड़ना चाहते हैं, फिर क्लिक करें


2

निम्नानुसार करें,

  • पर क्लिक करें commit
  • CMD+Aजो आप चाहते हैं उसे दबाकर चयन करेंdelete or discard
  • Right click उन चुनिंदा अप्रयुक्त फ़ाइलों पर जिन्हें आप हटाना चाहते हैं
  • Removeड्रॉप-डाउन सूची से चयन करें

1

ठीक है, विंडोज में इतनी सरल है कि macOS पर मैं थोड़ी देर के लिए भी देखा।

स्रोत ट्री में कमांड + शिफ्ट + आर पर क्लिक करें, एक छिपा हुआ पॉपअप दिखाया जाएगा जो आपको व्यक्तिगत फ़ाइलों को छोड़ देगा या सभी! यह क्यों छिपा है? हमें कभी पता नहीं चलेगा .. लेकिन यह काम करता है!

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


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