दोनों "स्टैश" और "स्नैपशॉट" वेरिएंट एक ही स्टैश ऑब्जेक्ट बनाते हैं। अंतर यह है कि जब आप एक स्नैपशॉट बनाते हैं, तो काम किए गए पेड़ और / या सूचकांक में फ़ाइलों से निकाले गए परिवर्तनों को हटाया नहीं जाता है। (ठीक उसी तरह जब आप अपने दोस्तों का स्नैपशॉट लेते हैं - एक अच्छा समय; जिससे उन्हें या तो गायब होने का कारण नहीं; ;-)
यह एक प्रकार के बैकअप तंत्र के रूप में अभिप्रेत है। मान लें कि आप कुछ जटिल रीफ़ैक्टरिंग कर रहे हैं और आपने अभी-अभी परीक्षण किया है और संशोधित कोड अभी भी काम कर रहा है लेकिन आप अभी तक नहीं किए गए हैं। अब स्नैपशॉट बनाने का एक अच्छा समय होगा, ताकि बाद में गड़बड़ करने पर आपके पास वापस जाने के लिए कुछ हो।
बेशक आप सिर्फ एक अस्थायी "wip" कमिट बना सकते हैं, ठीक उसी शाखा पर जिस पर आप काम कर रहे हैं, उसी को पूरा करने के लिए। आमतौर पर मैं यही करता हूं।
और आप Wip मोड्स को सक्षम करके कार्य-प्रगति की रिकॉर्डिंग की प्रक्रिया को भी स्वचालित कर सकते हैं । मेरे पास सुरक्षा मोड के रूप में इन मोड्स को सक्षम किया गया है, लेकिन मैं अभी भी सीधे वर्तमान शाखा पर wip कमिट बनाता हूं या स्नैपशॉट बनाता हूं। उन लोगों के साथ काम करना आसान है, जो wip Refs हैं।
ध्यान दें कि मैगिट अपने स्वयं के तेज कार्यान्वयन के साथ आता है जो कि एलीस्प में लिखा गया है। यह स्नैपशॉट वेरिएंट और वर्कट्री-ओनली और इंडेक्स-ओनली स्टैश वेरिएंट को लागू करने के लिए आवश्यक था। Git इनमें से कोई भी प्रकार प्रदान नहीं करता है।
stash
परिवर्तनों को रीसेट (पूर्ववत) भी किया जाएगा औरsnapshot
कार्यक्षेत्र में बदलावों को छोड़ देगा (यदि आप पुश करने से पहले कमिट को पुनर्व्यवस्थित करने जा रहे हैं तो उपयोगी हो सकता है)।