अद्यतन 2:
मुझे यकीन नहीं है कि लोग इस जवाब के बारे में शिकायत क्यों कर रहे हैं, ऐसा लगता है कि मेरे साथ पूरी तरह से काम किया जा रहा है, बिना खंडित फ़ाइलों के लिए आप -u
ध्वज जोड़ सकते हैं
पूरा कमांड बन जाता है git stash --keep-index -u
और यहाँ git-stash
मदद से एक स्निपेट है
यदि --keep-index विकल्प का उपयोग किया जाता है, तो पहले से ही अनुक्रमणिका में जोड़े गए सभी परिवर्तन बरकरार हैं।
यदि --include-untracked विकल्प का उपयोग किया जाता है, तो सभी अनट्रैक की गई फाइलें भी स्टैक्ड हो जाती हैं और फिर उन्हें git क्लीन के साथ साफ किया जाता है, जिससे वर्किंग डायरेक्टरी बहुत साफ अवस्था में रह जाती है। यदि इसके बजाय --all विकल्प का उपयोग किया जाता है, तो अनदेखा की गई फ़ाइलों को अनट्रैक की गई फ़ाइलों के अतिरिक्त स्टैक्ड और साफ़ किया जाता है।
और यह कैसे दिखता है इसका एक gif है:
अपडेट करें:
भले ही यह चयनित उत्तर हो, लेकिन बहुत सारे लोगों ने बताया है कि [नीचे दिया गया उत्तर] (https://stackoverflow.com/a/34681302/292408) सही है, मैं इसे जांचने की सलाह देता हूं।
मैंने आज (31/1/2020) git संस्करण के खिलाफ फिर से अपने जवाब का परीक्षण किया 2.24.0
, और मुझे अभी भी विश्वास है कि यह सही है, मैंने अनटैक की गई फ़ाइलों के बारे में एक छोटा नोट जोड़ा है। अगर आपको लगता है कि यह काम नहीं कर रहा है तो कृपया अपने git संस्करण का भी उल्लेख करें।
पुराना उत्तर :
यदि --keep-index
विकल्प का उपयोग किया जाता है, तो पहले से ही सूचकांक में जोड़े गए सभी परिवर्तन बरकरार हैं:
git stash --keep-index
के प्रलेखन सेgit-stash
:
आंशिक रूप से परीक्षण करना
git stash save --keep-index
जब आप दो या अधिक काम के पेड़ में बदलाव करना चाहते हैं, तो आप इसका उपयोग कर सकते हैं , और आप प्रत्येक परिवर्तन को प्रतिबद्ध करने से पहले परीक्षण करना चाहते हैं:
# ... hack hack hack ...
$ git add --patch foo # add just first part to the index
$ git stash save --keep-index # save all other changes to the stash
$ edit/build/test first part
$ git commit -m 'First part' # commit fully tested change
$ git stash pop # prepare to work on all other changes
# ... repeat above five steps until one commit remains ...
$ edit/build/test remaining parts
$ git commit foo -m 'Remaining parts'
लेकिन, यदि आप केवल चरणबद्ध परिवर्तनों को नेत्रहीन रूप से देखना चाहते हैं, तो आप कोशिश कर सकते हैं difftool
:
git difftool --cached
-k
विकल्प) या उपयोग करने के लिए बोझिल हैं।