जैसा कि कहीं और कहा गया है, इसका जवाब git add
फ़ाइल में है। उदाहरण के लिए:
git add path/to/untracked-file
git stash
हालाँकि, एक अन्य उत्तर में भी सवाल उठाया गया है: यदि आप वास्तव में फाइल जोड़ना नहीं चाहते हैं तो क्या होगा? खैर, जहां तक मैं बता सकता हूं, आपको करना होगा। और निम्नलिखित काम नहीं करेगा :
git add -N path/to/untracked/file # note: -N is short for --intent-to-add
git stash
यह निम्नानुसार विफल होगा:
path/to/untracked-file: not added yet
fatal: git-write-tree: error building trees
Cannot save the current index state
तो आप क्या कर सकते हैं? ठीक है, आपको वास्तव में फ़ाइल को जोड़ना होगा, हालांकि , आप इसे बाद में प्रभावी रूप से अन-एड कर सकते हैं git rm --cached
:
git add path/to/untracked-file
git stash save "don't forget to un-add path/to/untracked-file" # stash w/reminder
# do some other work
git stash list
# shows:
# stash@{0}: On master: don't forget to un-add path/to/untracked-file
git stash pop # or apply instead of pop, to keep the stash available
git rm --cached path/to/untracked-file
और फिर आप काम करना जारी रख सकते हैं, उसी स्थिति में जब आप पहले थे git add
(नामक एक अनट्रैक फ़ाइल के साथ path/to/untracked-file
; साथ ही आपके द्वारा ट्रैक की गई फ़ाइलों में कोई अन्य परिवर्तन हो सकते हैं)।
इस पर वर्कफ़्लो के लिए एक और संभावना कुछ इस तरह होगी:
git ls-files -o > files-to-untrack
git add `cat files-to-untrack` # note: files-to-untrack will be listed, itself!
git stash
# do some work
git stash pop
git rm --cached `cat files-to-untrack`
rm files-to-untrack
[नोट: जैसा कि @mancocapac से एक टिप्पणी में उल्लेख किया है, जिसे आप जोड़ना चाहते हो सकता है --exclude-standard
के लिए git ls-files
आदेश (हां, तो git ls-files -o --exclude-standard
)।]
... जिसे आसानी से स्क्रिप्ट किया जा सकता है - यहां तक कि उपनाम भी करेंगे (zsh सिंटैक्स में प्रस्तुत किया गया; आवश्यकतानुसार समायोजित) [भी, मैंने फ़ाइल नाम को छोटा कर दिया है, इसलिए यह सब इस उत्तर में स्क्रॉल किए बिना स्क्रीन पर फिट बैठता है; अपने चयन के वैकल्पिक फ़ाइलनाम को स्थान देने के लिए स्वतंत्र महसूस करें]:
alias stashall='git ls-files -o > .gftu; git add `cat .gftu`; git stash'
alias unstashall='git stash pop; git rm --cached `cat .gftu`; rm .gftu'
ध्यान दें कि बाद बेहतर एक खोल स्क्रिप्ट या समारोह के रूप में हो सकता है, मानकों को आपूर्ति करने के लिए किया जा अनुमति देने के लिए git stash
आप नहीं चाहते मामले में, pop
लेकिन apply
, और / या एक विशिष्ट गुप्त कोष में निर्दिष्ट करने के लिए, के बजाय सिर्फ शीर्ष लेने में सक्षम होना चाहते एक। शायद यह (दूसरे उर्फ के बजाय, ऊपर) [व्हॉट्सएप बिना स्क्रॉल किए फिट होने के लिए छीन लिया गया; बढ़ाई गई विरासत के लिए फिर से जोड़ें]:
function unstashall(){git stash "${@:-pop}";git rm --cached `cat .gftu`;rm .gftu}
नोट : इस रूप में, आपको एक्शन तर्क के साथ-साथ पहचानकर्ता को भी आपूर्ति करने की आवश्यकता है यदि आप एक स्टैश पहचानकर्ता की आपूर्ति करने जा रहे हैं, जैसे unstashall apply stash@{1}
याunstashall pop stash@{1}
.zshrc
दीर्घावधि के लिए आप कौन सा कोर्स अपने समकक्ष या समकक्ष रखेंगे।
उम्मीद है कि यह उत्तर किसी के लिए उपयोगी हो, सभी को एक उत्तर में सब कुछ एक साथ रखे।
git stash show
रिटर्न में कुछ भी नहीं है और आपको इसे छोड़ने के लिए लुभाया जा सकता है (जैसा कि मैंने अभी किया था जबकि इसमें एक उपयोगी स्क्रिप्ट थी, जो मैंने कुछ महीने पहले लिखी थी। → कैसे गिरा हुआ निशान ठीक किया जाए )