2011-11-14 10 views
55

मेरे पास भविष्य के लिए एक छिपी हुई सहेजी गई है जिसे मैं एक सार्थक नाम देना चाहता हूं। हालांकि git stash save पर तर्क के रूप में संदेश को पास करना संभव है, क्या मौजूदा स्टैश में संदेश जोड़ने का कोई तरीका है?गिट स्टेश संदेश बदलें

+0

मुझे पता है कि यह प्रश्न ध्वजांकित डुप्लिकेट से पुराना है, लेकिन उस प्रश्न के बेहतर उत्तर हैं। – Michael

उत्तर

45

आप सीधे .git/logs/refs/stash में संग्रहीत संदेशों को संपादित कर सकते हैं।

मुझे पता है कि यह शायद आदर्श नहीं है, लेकिन वैसे भी काम करना चाहिए।

+5

तथ्य यह है कि जो काम करता है वह अविश्वसनीय रूप से भाग्यशाली है: संदेश को प्रतिबद्ध संदेश में भी संग्रहीत किया जाता है (स्टैश आंतरिक रूप से काम करता है), और आप निश्चित रूप से नहीं बदल रहे हैं उस। – Cascabel

+0

यह काम करता है; बहुत बहुत धन्यवाद – CharlesB

+2

यह वास्तव में प्रतिबद्ध संदेश नहीं बदलता है (देखें 'गिट शो स्टैश' या 'गिट लॉग --all'), केवल स्टैश रीफ्लॉग में प्रविष्टि। – Zaz

15

पॉपिंग और फिर से सहेजने के बिना नहीं।

+2

प्रतीत होता है कि यह सबसे आसान समाधान है – Kirby

+1

यदि आपकी पट्टियां विभिन्न शाखाओं में हैं, तो "पॉपिंग और फिर से सहेजने" के रूप में यह आसान नहीं है, जो मौजूदा शाखा (जो विलय पर असफल हो सकता है) के लिए प्रतिबद्ध प्रतिबद्धता लागू करेगा। यदि आप खुद को सशस्त्रों की एक लंबी सूची के साथ पाते हैं तो आपको शायद शाखाकरण का बेहतर उपयोग करने की आवश्यकता है। – i3ensays

+1

पहले मैंने सोचा था कि उसने कहा था "बिना शिकार के नहीं" –

11

(मैनोज़ल्ड के उत्तर पर विस्तार करना।) संदेश को संलग्न करने की सबसे सरल चीज़ वास्तव में एक संदेश के साथ अन-स्टैश और फिर से छेड़छाड़ करना है, git stash branch कमांड है जो आपको ऐसा करने में मदद करेगा।

git stash branch tmp-add-stash-message 
git stash save "Your stash message" 

केवल दोष यह है इस गुप्त कोष में अब tmp-add-stash-message शाखा से ही शुरू करने के लिए प्रकट होता है। इसके बाद, आप एक और शाखा चेकआउट कर सकते हैं और इस अस्थायी शाखा को हटा सकते हैं।

बेशक, यह मानता है कि अपने काम की नकल साफ है, अन्यथा आप :-)

+0

यह उत्तर वास्तव में सही है – woohoo

1

वर्तमान परिवर्तन छिपाया जा सकता है यहाँ आप पॉप और के रूप में @manojlds पता चलता है फिर से बचाने के लिए मदद करने के लिए कुछ आदेश दिया गया है:

git stash #save what you have uncommitted to [email protected]{0} 
git stash pop [email protected]{1} #or another <stash> you want to change the message on 
# only if necessary, fix up any conflicts, git reset, and git stash drop [email protected]{1} 
git stash save "new message" 
git pop [email protected]{1} #get back to where you were if you had uncommitted changes to begin with 
9

हाँ, वहाँ एक रास्ता है, तो आप इस कोशिश कर सकते हैं:

git stash store -m "your descriptive message here" [email protected]{1}

इससे उपरोक्त संदेश के साथ [email protected]{0} नामक एक नया स्टैश बनाया जाएगा।
यह स्टैश [email protected]{1} जैसा ही है।

तो फिर तुम साथ ऊपर {1} पुराने गुप्त कोष @ निकाल सकते हैं:

git stash drop [email protected]{2} # गुप्त कोष @ {1} बन गया है गुप्त कोष @ {2} के रूप में एक नया गुप्त कोष बनाया गया है।

नोट: आप इसे {@ 0}: git stash store -m "message here" [email protected]{0} के साथ नहीं कर सकते हैं कुछ भी नहीं करेंगे।

+1

यह' stash {0} 'के साथ क्यों काम नहीं करता है? – CharlesB

+0

वास्तव में मुझे नहीं पता, मैंने कोशिश की और यह काम नहीं किया।तो मुझे लगता है कि: यदि यह स्टैश @ {1} पर कॉल करता है, तो यह स्टैक @ {1} की एक प्रति स्टैक के शीर्ष पर लाता है, इसलिए जब उपयोगकर्ता 'गिट स्टैश लागू' कहता है, तो उसे अलग-अलग परिणाम मिलते हैं। यदि यह @ @ 0} पर कॉल करता है, तो बाद में 'गीट स्टैश लागू' पर कॉल करें, उसी परिणाम में उत्पन्न होता है। –

+0

आपके संदेश "' गिट स्टैश सेव "है – woohoo

संबंधित मुद्दे