1.8.3 में पॉप विशिष्ट स्टैश कैसे इकट्ठा करें?


290

मैंने अभी गिट को अपग्रेड किया है। मैं Git संस्करण 1.8.3 पर हूं।

आज सुबह मैंने स्टैक में 1 बदलाव को बदलने की कोशिश की।

मैंने दौड़कर git stash pop stash@{1}यह त्रुटि प्राप्त की।

घातक: अस्पष्ट तर्क 'स्टैश @ 1': अज्ञात संशोधन या काम के पेड़ में नहीं पथ। संशोधन से पथों को अलग करने के लिए '-' का प्रयोग करें, जैसे: 'git [...] - [...]'

मैंने इस पर लगभग 20 + बदलावों की कोशिश की है applyऔर popसाथ ही साथ इसका उपयोग बिना किसी सफलता के किया है। क्या बदला है? किसी और को यह मुठभेड़?


2
क्या आपने {} के भागने की कोशिश की?
एलेक्सडेव

20
Git 2.11 (Q4 2016) के साथ, आप अब उपयोग कर सकते हैं git stash pop 1: नीचे मेरा उत्तर देखें
VONC

जवाबों:


359
git stash apply n

2.11 संस्करण के रूप में काम करता है

मूल उत्तर, संभवतः शेल से बचने वाले पुराने सिंटैक्स के साथ मुद्दों को डीबग करने में मदद करता है:

जैसा कि पहले बताया गया है, घुंघराले ब्रेसिज़ को आपके ओएस, शेल आदि के आधार पर भागने या उद्धृत करने की आवश्यकता हो सकती है।

" स्टेश @ {1} देखें अस्पष्ट है? " क्या गलत हो सकता है के कुछ विस्तृत संकेत के लिए, और विभिन्न गोले और प्लेटफार्मों में इसके चारों ओर कैसे काम करें।

git stash list
git stash apply stash@{n}

गिट स्टैश संस्करण लागू होते हैं


15
इस उत्तर के साथ मेरा केवल यह है कि प्रश्न यह पूछता है कि popएक विशिष्ट स्टैश कैसे किया जाता है और यह कमांड applyइसे पॉप करने के बजाय स्टैश करता है। अंतर यह है कि एक पॉप दोनों ही कोड को स्‍टेश लागू करता है और स्‍टैश को हटा देता है।
हम्फ्रीज अनुदान

मेरे लिए काम नहीं कर रहा है। "अज्ञात विकल्प: -encodedCommand" त्रुटि प्राप्त करना
युवराज पाटिल


कृपया अपने उत्तर को अपडेट करें, अबgit stash apply n
हाफ़िज़ टेमुरी

179

आपको ब्रेसिज़ से बचने की आवश्यकता है:

git stash pop stash@\{1\}

78

यदि आप वाक्यविन्यास के लिए उद्धरणों से निपटना नहीं चाहते हैं stash@{x}, तो Git 2.11 (Q4 2016) का उपयोग करें

हारून एम वॉटसन ( ) द्वारा a56c8f5 (24 अक्टूबर 2016) देखें । (द्वारा विलय Junio सी Hamano - - में प्रतिबद्ध 9fa1f90 31 अक्टूबर 2016)watsona4
gitster

stash: स्टैड्स को केवल इंडेक्स द्वारा संदर्भित करने की अनुमति दें

" stash@{n}" स्पष्ट रूप से संदर्भित करने के बजाय , इसे केवल " n" के रूप में संदर्भित करना संभव है ।
अधिकांश उपयोगकर्ता केवल स्टाॅक स्टैक में अपनी स्थिति (जो मैं "इंडेक्स" के रूप में संदर्भित करता हूं) द्वारा होने वाली बाधाओं को संदर्भित करता हूं।

ठेठ छिपाने की जगह ( stash@{n}) के लिए वाक्यविन्यास थोड़ा कष्टप्रद है और भूलना आसान है, और कभी-कभी स्क्रिप्ट में ठीक से बचना मुश्किल होता है

इस वजह से केवल सूचकांक को संदर्भित करके स्टैश के साथ चीजों को करने की क्षमता वांछनीय है।

इसलिए:

git stash drop 1
git stash pop 1
git stash apply 1
git stash show 1

5
धन्यवाद! 2019 में यहां आने वाले लोगों के लिए यह संभवतः सबसे प्रासंगिक जवाब है।
एरोन फ्रैरी

52

विंडोज पॉवर्सशेल पर मैं इसे चलाता हूं:

git stash apply "stash@{1}"

2
Ubuntu linux पर भी काम करता है
बुके वेरस्टीघ

मैक ओएस एक्स पर भी काम करता है। मुझे एकल पात्रों से बचकर रहना बेहतर लगता है।
फेलिक्स गागन-ग्रेनियर

16

जैसा कि रॉबर्ट ने बताया, उद्धरण चिह्न आपके लिए चाल हो सकते हैं:

git stash pop stash@"{1}"

12

यदि उपरोक्त में से कोई भी काम नहीं है, तो स्टेश के चारों ओर उद्धरण चिह्न आपके लिए काम कर सकते हैं:

git stash pop "stash@{0}"

4

मैं 2.22 स्थापित किया है और यह काम किया ..

git stash pop --index 1

यह काम नहीं करता है .. $ git stash pop --index 1 घातक: अस्पष्ट तर्क '1': अज्ञात संशोधन या कार्यशील पेड़ में पथ नहीं। संशोधनों से पथों को अलग करने के लिए '-' का प्रयोग करें, जैसे: 'git <कमांड> [<revision> ...] - [<file> ...]
डेव डोगा Oz

2

संस्करण 2.11+ निम्नलिखित का उपयोग करें:

git stash list

git stash apply n

n संख्या छंद @ {12} है


1

पहले सूची की जाँच करें: -

git stash list

वह इंडेक्स कॉपी करें जिसे आप स्‍टैश सूची से पॉप करना चाहते थे

git stash pop stash@{index_number}

उदा .:

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