दो बार जीआईटी स्टैश


93

मुझे जल्दी से गिट शाखाओं को स्विच करना था, इसलिए मैं भाग गया git stash, लेकिन मुझे इसे फिर से चलाना पड़ा क्योंकि मेरी एक फाइल को संपादन की आवश्यकता थी।

इसलिए मैं git stashदो बार भाग चुका हूं, और मैं अपनी फ़ाइलों को संपादित करने के लिए वापस जाने के लिए तैयार हूं। मैं भागा, git stash applyलेकिन मुझे यकीन नहीं हुआ कि मैंने जो भी फाइलें छीनी थीं, वे सभी अनस्टेड थीं। क्या मै कुछ कर सकता हुं? जांच करने का कोई तरीका?

जब मैं दौड़ता हूं git stash show, तो मैं सिर्फ अपनी दो गिट्स स्टैचिस देखता हूं।

वैसे भी सभी को दिखाने के लिए है git stashes?


4
git stash list। यदि आपने दो git stash popबार किए हैं, तो दो बार कॉल करें ।
फेलिक्स क्लिंग

हाय, आपने इसे ठीक कर दिया! आपको इसे एक उत्तर के रूप में रखना चाहिए। बहुत बहुत धन्यवाद
Stephenmurdoch 17

जवाबों:


169

आप के साथ सभी बाधाओं की एक सूची प्राप्त कर सकते हैं

git stash list

जो आपको कुछ ऐसा दिखाएगा

stash@{0}: WIP on dev: 1f6f8bb Commit message A
stash@{1}: WIP on master: 50cf63b Commit message B

यदि आपने दो git stash popबार किए हैं, तो बस दो बार कॉल करें । जैसा कि विरोध किया जाता है git stash apply, नवीनतम स्टैश कोpop लागू करता है और हटाता है।

आप एक विशिष्ट स्टैश का संदर्भ भी ले सकते हैं, जैसे

git stash show stash@{1}

या

git stash apply stash@{1}

बहुत बहुत धन्यवाद। मेरा दिन बचाया।
स्टीफनमुर्डोच

25
यदि आप git stash popदो बार चाहते हैं क्योंकि आप एक ही प्रतिबद्ध में दोनों लड़ियाँ चाहते हैं, लेकिन आपका सामना "त्रुटि: निम्न फ़ाइलों के लिए आपके स्थानीय परिवर्तनों को मर्ज करके किया जाएगा:" आपके 2 पर git stash pop, तो आप कर सकते हैं: 1) git stash pop, 2) git add ., और 3 ) का है git stash pop
गबे

इससे मुझे मदद मिली। मुझे कुछ नई अनट्रैक फ़ाइलों को स्टैश करने के लिए "git stash" और फिर "git stash --all" करने की आवश्यकता थी। दो बार git stash पॉप करना काम नहीं कर रहा था। मैं केवल बाद में वापस आ गया।
लियोपोल्ड क्रिस्टजानसन

0

मैं इस स्थिति में आया था, मैंने दो स्टैच किए और गिट स्टैश पॉप सिर्फ अनस्टैश्ड लास्ट स्टैश। तो मैंने किया

git stash list

git stash pop stash@{1}

इसने मेरी पहली छटनी की और मैं अपने सारे बदलावों को वापस देख सका!


0

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

>> मुझे विश्वास नहीं हो रहा है कि मैंने जो भी फाइलें अटकी थीं, वे सभी अनस्टेड थीं। क्या मै कुछ कर सकता हुं? जांच करने का कोई तरीका?

स्थानीय पेड़ से टकराव की तुलना करें

मुझे लगता है कि आप जो करना चाहते हैं, उसकी तुलना अपने स्थानीय कामकाजी पेड़ से करें । आप स्‍टैश कमांड पर -p स्विच लगा सकते हैं और आप अच्‍छे हैं:

git stash show -p

यदि आप के बाद एक विशेष है, तो बस इसके gash stash नाम या id का उपयोग stash सूची से करें:

git stash show -p stash@{3}

शायद अंतर का उपयोग करें?

यदि आप वास्तव में अपने गिट कौशल को आगे बढ़ाने में रुचि रखते हैं, तो आप हमेशा एक अंतर के लिए जा सकते हैं। मास्टर शाखा पर एचएएडी में जांच की गई स्टैट्स और व्हाट्स में अंतर देखने के लिए, निम्नलिखित अंतर का उपयोग किया जा सकता है:

git diff stash@ master

आपको दिखाने के लिए इतिहास में तत्वों के लिए एक और साफ आदेश है कि काम आ सकता है --stat:

git stash list --stat

लेकिन मुझे लगता है कि सरल उत्तर सही उत्तर है। बस -p स्विच का उपयोग करें और आप देखेंगे कि यदि आपके द्वारा छोड़े गए स्टैप को वापस पॉप किया गया है।

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