stash @ {1} अस्पष्ट है?


122

मैं अपने गुप्त कोष के बारे में जानकारी पाने के लिए कोशिश कर रहा हूँ, लेकिन Git मुझे उस कह रहा है stash@{0}और stash@{1}अस्पष्ट हैं। git stash listठीक काम करता है, और .git/logs/refs/stashलगता है कि उपयुक्त सामग्री है (यह नहीं कि मैं गिट इंटर्न पर एक विशेषज्ञ हूं)।

% git stash list
stash@{0}: On master: two
stash@{1}: On master: one
% git stash show stash@{1}
fatal: ambiguous argument 'stash@1': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions

बस सादा git stash showकाम ठीक है। तो वे नाम क्यों हैं जो git stash listमुझे अस्पष्ट मानते हैं?


1
मेरे मामले में, मैं किसी भी नाम की एक शाखा के साथ समाप्त हो गया stash, जो त्रुटि पैदा कर रहा था।
जज

और मेरे मामले में मेरे पास एक रिमोट नाम था stash, जिससे त्रुटि हुई!
रॉबर्ट मुइल

जवाबों:


231

आपका खोल आपके घुंघराले कोष्ठकों को खा रहा है, इसलिए जब आप कहते हैं stash@{1}, तो गिट देखता है stash@1और इसका कोई मतलब नहीं है। तर्क को उद्धृत करें (उपयोग करें git stash apply "stash@{1}"या git stash apply stash@"{1}", किसी भी तरह से काम करेंगे) का उपयोग करें या अपने शेल को केवल घुंघराले कोष्ठक का विस्तार करने के लिए पुन: कॉन्फ़िगर करें जब उनके बीच एक अल्पविराम होता है (zsh को किसी भी तरह से कॉन्फ़िगर किया जा सकता है, तो केवल घुंघराले कोष्ठक को अल्पविराम या सीमा के साथ उनके बीच फैलता है, अन्य) गोले एक या दूसरे तरीके का व्यवहार कर सकते हैं)।


1
@sehe: एक असामान्य वर्तमान में उपयोग करता है। त्रुटि संदेश उद्धृत यह स्पष्ट रूप से इंगित करता है (नहीं, ऐसा लगता है कि यह बैश नहीं हो सकता है)।
Jan Hudec

83
विंडोज पर, PowerShell कोष्ठक भी खाएंगे। आप उन्हें एक बैकटिक के साथ बच सकते हैं(git stash drop stash@`{1`})
जेवियर पोइनास

8
धन्यवाद यह मछली के साथ होता है, निश्चित नहीं था कि क्या हो रहा था।
एलिजा लिन

3
@Sergey पावरशेल के लिए या तो स्लैश @ `{0`} (बैकटिक्स) या 'स्टैश @ {0}' (सिंगल कोट्स) का उपयोग करें।
हंस

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

23

हाय वहाँ मुझे वही हुआ जो मेरे साथ हुआ था। इसे ठीक करने का सबसे आसान तरीका था:

$ git stash apply stash@"{2}"

मैं एक विंडोज़ गिट शेल का उपयोग कर रहा हूं।


2
इसके अलावाgit stash apply "stash@{2}"
रसेना


वही git stash लागू "stash @ {2}" मेरे लिए काम करता है, मुझे "अज्ञात विकल्प: -encodedCommand" संदेश मिल रहा था जब मेरे 3 stash को छिपाने की कोशिश कर रहा था, मैं विजुअल स्टूडियो कोड का उपयोग कर रहा था, जो कि टर्मिनल पर एकीकरण की शक्ति है।
राजन चौहान

1

यदि आपके पास विंडोज पर मैगिट के साथ Emacs में काम करते समय यह त्रुटि है (मेरे जैसे)
मुझे आशा है कि यह त्वरित समाधान आपकी मदद करेगा:

(if (eq system-type 'windows-nt)
    (defadvice magit-run-git (before magit-run-git-win-curly-braces (&rest args) activate)
      "Escape {} on Windows"
      (setcar (nthcdr 2 args) 
              (replace-regexp-in-string "{\\([0-9]+\\)}" "\\\\{\\1\\\\}" (elt args 2)))
    )
  )

इसमें {}एक 3 पैरामीटर में बोली होगी("stash", "cmd", "stash@{0}") जिसमें द्वारा चलाया जाता हैmagit-run-git



1

सरल शब्दों के बीच बस स्टैड आईडी लगाएं:

git stash apply 'stash@{1}'

3
यह प्रश्न का उत्तर कैसे देता है? स्‍टैश सूची में कोई # 3 इंडेक्स नहीं है। यदि यह एक गंभीर जवाब है तो कृपया बताएं कि यह आदेश समस्या का समाधान क्यों करेगा
ब्रैड

मैंने अपने उत्तर को स्पष्टता के लिए संपादित किया: मुख्य विचार केवल सरल उद्धरणों के बीच स्टैश आईडी लगाना था। यह। लागू ’या 'ड्रॉप’ उपनगरों पर लागू होता है। स्टैश आईडी नंबर वास्तव में मायने नहीं रखता है
एड्रियानो

हालांकि यह कोड स्निपेट प्रश्न को हल कर सकता है, जिसमें स्पष्टीकरण सहित वास्तव में आपकी पोस्ट की गुणवत्ता में सुधार करने में मदद करता है। याद रखें कि आप भविष्य में पाठकों के लिए प्रश्न का उत्तर दे रहे हैं, और उन लोगों को आपके कोड सुझाव के कारणों का पता नहीं चल सकता है।
दिमासन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.