मैं git stash pop
काफी समय से उपयोग कर रहा हूं । मुझे हाल ही में git stash apply
कमांड के बारे में पता चला । जब मैंने इसे आज़माया, तो ऐसा ही लगा git stash pop
।
बीच क्या अंतर है git stash pop
और git stash apply
?
मैं git stash pop
काफी समय से उपयोग कर रहा हूं । मुझे हाल ही में git stash apply
कमांड के बारे में पता चला । जब मैंने इसे आज़माया, तो ऐसा ही लगा git stash pop
।
बीच क्या अंतर है git stash pop
और git stash apply
?
जवाबों:
git stash pop
इसे लागू करने के बाद (सबसे ऊपरी, डिफ़ॉल्ट रूप से) दूर फेंक देता है, जबकि बाद में पुन: उपयोग के लिए git stash apply
इसे स्टैश सूची में छोड़ देता है (या फिर आप git stash drop
इसे ले सकते हैं)।
ऐसा तब तक होता है जब तक कि संघर्ष नहीं होते हैं git stash pop
, जिस स्थिति में यह हकलाना नहीं हटाएगा, यह बिल्कुल वैसा ही व्यवहार करने के लिए छोड़ देगा git stash apply
।
इसे देखने का एक और तरीका है: git stash pop
है git stash apply && git stash drop
।
git stash pop
परिणाम हैं, फिर भी आपको एक संघर्ष त्रुटि मिलेगी।
इस उपयोगी लिंक को मिला जो अंतर बताता है, जैसा कि जॉन Zwinck ने कहा है और इसकी एक खामी है git stash pop
।
उदाहरण के लिए, मान लें कि आपके द्वारा किए गए अन्य परिवर्तनों के साथ आपका स्टैक्ड परिवर्तन संघर्ष है, जब से आपने पहली बार स्टैश बनाया है। पॉप और अप्लाय दोनों ही मर्ज संघर्ष रिज़ॉल्यूशन मोड को ट्रिगर करने में मदद करेंगे, जिससे आप इस तरह के संघर्षों को अच्छी तरह से हल कर सकते हैं ... और न ही स्टैश से छुटकारा मिलेगा, भले ही आप पॉप की उम्मीद कर रहे हों। चूंकि बहुत से लोग बस एक साधारण स्टैक होने की उम्मीद करते हैं, इसलिए यह अक्सर उन्हें बाद में गलती से उसी स्टैप को पॉप करने की ओर ले जाता है क्योंकि उन्हें लगा कि यह चला गया है।
लिंक: http://codingkilledthecat.wordpress.com/2012/04/27/git-stash-pop-considered-harmful/
इसे कार्रवाई में देखने से आपको अंतर समझने में बेहतर मदद मिल सकती है।
यह मानते हुए कि हम master
शाखा पर काम कर रहे हैं और एक फाइल hello.txt
है जिसमें "हैलो" स्ट्रिंग है।
चलो फ़ाइल को संशोधित करें और इसमें "दुनिया" स्ट्रिंग जोड़ें। अब आप एक छोटी सी बग को ठीक करने के लिए एक अलग शाखा में जाना चाहते हैं, जिसे आपने अभी-अभी पाया है, इसलिए आपको stash
अपने परिवर्तनों की आवश्यकता है :
git stash
आप दूसरी शाखा में चले गए, बग को ठीक कर दिया और अब आप अपनी master
शाखा पर काम करना जारी रखने के लिए तैयार हैं , इसलिए आप pop
परिवर्तन करें:
git stash pop
अब यदि आप अपने द्वारा प्राप्त की गई सामग्री की समीक्षा करने का प्रयास करेंगे:
$ git stash show -p
No stash found.
हालाँकि, यदि आप git stash apply
इसके बजाय उपयोग करते हैं, तो आपको स्टैस्ड सामग्री मिल जाएगी, लेकिन आप इसे बनाए रखेंगे:
$ git stash show -p
diff --git a/hello.txt b/hello.txt
index e965047..802992c 100644
--- a/hello.txt
+++ b/hello.txt
@@ -1 +1 @@
-Hello
+Hello world
तो pop
बस स्टैक पॉप की तरह है - यह वास्तव में तत्व को हटा देता है एक बार जब यह पॉप हो जाता है, जबकि apply
अधिक बार झांकना पसंद होता है ।
में git
गुप्त कोष में एक भंडारण क्षेत्र है, जहां वर्तमान बदली हुई फ़ाइलें ले जाया जा सकता है।
stash
क्षेत्र उपयोगी है जब आप git
रिपॉजिटरी से कुछ परिवर्तन खींचना चाहते हैं और git
रेपो में उपलब्ध कुछ पारस्परिक फ़ाइलों में कुछ परिवर्तनों का पता लगाया है ।
git stash apply //apply the changes without removing stored files from stash area.
git stash pop // apply the changes as well as remove stored files from stash area.
नोट: -
git apply
केवल स्लैश क्षेत्र से परिवर्तनgit pop
लागू करें और साथ हीstash
क्षेत्र से परिवर्तन हटा दें ।
Git Stash Pop vs apply
वर्किंग
यदि आप अपने शीर्ष अटके हुए बदलावों को वर्तमान गैर-चरणबद्ध परिवर्तनों पर लागू करना चाहते हैं और साथ ही उस टकराव को हटा सकते हैं, तो आपको जाना चाहिए git stash pop
।
# apply the top stashed changes and delete it from git stash area.
git stash pop
लेकिन अगर आप अपने शीर्ष क्रम में किए गए परिवर्तनों को बिना हटाए वर्तमान में किए गए परिवर्तन पर लागू करना चाहते हैं, तो आपको इसके लिए जाना चाहिए git stash apply
।
नोट: आप इस मामले को
Stack
कक्षाpop()
औरpeek()
विधियों के साथ संबंधित कर सकते हैं , जहां पॉप अप घटाव (शीर्ष = शीर्ष -1) से बदल जाता है, लेकिनpeek()
केवल शीर्ष तत्व प्राप्त करने में सक्षम है।