यह कमांड गिट-स्टैश है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे कि उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।
कार्यक्रम:
नाम
git-stash - गंदे कार्यशील निर्देशिका में परिवर्तनों को दूर छिपाएँ
SYNOPSIS
Git छिपाने की जगह सूची [ ]
Git छिपाने की जगह दिखाओ [ ]
Git छिपाने की जगह ड्रॉप [-q|--शांत] [ ]
Git छिपाने की जगह (पॉप | लागू करें) [--सूचकांक] [-q|--शांत] [ ]
Git छिपाने की जगह शाखा [ ]
Git छिपाने की जगह [सहेजें [-पी|--पैच] [-के|--[नहीं-]कीप-इंडेक्स] [-क्यू|--शांत]
[-u|--include-untracked] [-a|--all] [ ]]
Git छिपाने की जगह स्पष्ट
Git छिपाने की जगह बनाएं [ ]
Git छिपाने की जगह स्टोर [-एम|--संदेश ] [-q|--शांत]
वर्णन
जब आप कार्यशील निर्देशिका की वर्तमान स्थिति को रिकॉर्ड करना चाहते हैं तो git stash का उपयोग करें
अनुक्रमणिका, लेकिन एक साफ़ कार्यशील निर्देशिका पर वापस जाना चाहता हूँ। कमांड आपके लोकल को सेव करता है
संशोधनों को दूर करता है और HEAD कमिट से मेल खाने के लिए कार्यशील निर्देशिका को वापस लाता है।
इस कमांड द्वारा छिपाए गए संशोधनों को गिट स्टैश सूची के साथ सूचीबद्ध किया जा सकता है,
गिट स्टैश शो के साथ निरीक्षण किया गया, और पुनर्स्थापित किया गया (संभवतः एक अलग प्रतिबद्धता के शीर्ष पर)
गिट स्टैश के साथ लागू करें। बिना किसी तर्क के git stash को कॉल करना git stash के बराबर है
बचाना। एक स्टैश डिफ़ॉल्ट रूप से "WIP चालू" के रूप में सूचीबद्ध होता है शाखा का नाम ...", लेकिन आप और भी दे सकते हैं
जब आप एक बनाते हैं तो कमांड लाइन पर वर्णनात्मक संदेश।
आपके द्वारा बनाया गया नवीनतम स्टैश refs/stash में संग्रहीत है; में पुरानी वस्तुएं पाई जाती हैं
इस संदर्भ को रीफ्लॉग करें और इसे सामान्य रीफ्लॉग सिंटैक्स का उपयोग करके नाम दिया जा सकता है (उदाहरण के लिए stash@{0} है)।
सबसे हाल ही में बनाया गया स्टैश, stash@{1} इसके पहले वाला है, stash@{2.hours.ago} है
यह भी संभव है)।
विकल्प
सहेजें [-पी|--पैच] [-के|--[नहीं-]कीप-इंडेक्स] [-यू|--इनक्लूड-अनट्रैक्ड] [-ए|--सभी] [-क्यू|--शांत]
[ ]
अपने स्थानीय संशोधनों को नए में सहेजें छिपाने की जगह, और उन्हें वापस लाने के लिए git रीसेट --हार्ड चलाएँ।
भाग वैकल्पिक है और संग्रहीत स्थिति के साथ विवरण देता है।
शीघ्रता से स्नैपशॉट बनाने के लिए, आप इसे छोड़ सकते हैं के छात्रों "सहेजें" और , लेकिन केवल दे रहे हैं
गलत वर्तनी वाले उपकमांड को बनने से रोकने के लिए इस क्रिया को ट्रिगर नहीं करता है
एक अवांछित भंडार.
यदि --कीप-इंडेक्स विकल्प का उपयोग किया जाता है, तो इंडेक्स में पहले से जोड़े गए सभी परिवर्तन छोड़ दिए जाते हैं
बरकरार।
यदि --include-untracked विकल्प का उपयोग किया जाता है, तो सभी अनट्रैक की गई फ़ाइलें भी संग्रहीत हो जाती हैं
फिर गिट क्लीन से साफ किया गया, जिससे कार्यशील निर्देशिका बहुत साफ स्थिति में रह गई।
यदि इसके बजाय --all विकल्प का उपयोग किया जाता है तो नजरअंदाज की गई फ़ाइलें संग्रहीत और साफ़ कर दी जाती हैं
ट्रैक न की गई फ़ाइलों के अतिरिक्त.
--पैच के साथ, आप अंतःक्रियात्मक रूप से HEAD और के बीच के अंतर से हंक का चयन कर सकते हैं
काम कर रहे पेड़ को छुपाया जाना है। स्टैश प्रविष्टि का निर्माण इस प्रकार किया गया है कि इसकी अनुक्रमणिका स्थिति हो
आपके भंडार की सूचकांक स्थिति के समान है, और इसके वर्कट्री में केवल शामिल है
आपके द्वारा इंटरैक्टिव रूप से चयनित परिवर्तन। फिर चयनित परिवर्तन वापस ले लिए जाते हैं
आपका कार्यवृक्ष. का "इंटरएक्टिव मोड" अनुभाग देखें git-जोड़ें(1) कैसे सीखें
--पैच मोड संचालित करें।
--पैच विकल्प का अर्थ है --कीप-इंडेक्स। इसे ओवरराइड करने के लिए आप --no-keep-index का उपयोग कर सकते हैं।
सूची [ ]
आपके पास वर्तमान में जो भंडार है उसकी सूची बनाएं। प्रत्येक छिपाने की जगह इसके नाम के साथ सूचीबद्ध है (उदा
stash@{0} नवीनतम stash है, stash@{1} पहले वाला है, आदि), का नाम
वह शाखा जो स्टैश बनाए जाने के समय चालू थी, और कमिट का संक्षिप्त विवरण
छिपाने की जगह पर आधारित था.
stash@{0}: सबमिट पर WIP: 6ebd0e2... git-stash दस्तावेज़ अपडेट करें
stash@{1}: मास्टर पर: 9cc0589... git-stash जोड़ें
आदेश लागू विकल्पों को लेता है Git लॉग इन जो दिखाया गया है उसे नियंत्रित करने का आदेश
और कैसे। देखना गिट-लॉग(1).
दिखाओ [ ]
स्टैश में दर्ज किए गए परिवर्तनों को स्टैश्ड स्थिति और उसके बीच अंतर के रूप में दिखाएं
मूल अभिभावक. जब नहीं दिया गया है, नवीनतम दिखाता है। डिफ़ॉल्ट रूप से,
कमांड डिफस्टैट दिखाता है, लेकिन यह ज्ञात किसी भी प्रारूप को स्वीकार करेगा Git diff (उदाहरण के लिए, गिट
पैच फॉर्म में दूसरा सबसे हालिया स्टैश देखने के लिए स्टैश शो -p स्टैश@{1})। तुम कर सकते हो
डिफ़ॉल्ट को बदलने के लिए stash.showStat और/या stash.showPatch कॉन्फिग वेरिएबल का उपयोग करें
व्यवहार.
पॉप [--सूचकांक] [-q|--शांत] [ ]
स्टैश सूची से एकल स्टैश्ड स्थिति को हटाएं और इसे करंट के शीर्ष पर लागू करें
वर्किंग ट्री स्टेट, यानी, गिट स्टैश सेव का उलटा ऑपरेशन करें। काम कर रहे
निर्देशिका को सूचकांक से मेल खाना चाहिए।
राज्य को लागू करना संघर्षों के साथ विफल हो सकता है; इस स्थिति में, इसे इससे हटाया नहीं जाता है
भंडारण सूची. आपको विवादों को हाथ से हल करना होगा और गिट स्टैश ड्रॉप को मैन्युअल रूप से कॉल करना होगा
बाद में।
यदि --index विकल्प का उपयोग किया जाता है, तो न केवल कार्यशील वृक्ष को पुनर्स्थापित करने का प्रयास किया जाता है
परिवर्तन, लेकिन सूचकांक वाले भी। हालाँकि, जब आपके बीच टकराव हो तो यह विफल हो सकता है
(जो सूचकांक में संग्रहीत हैं, जहां आप अब परिवर्तनों को लागू नहीं कर सकते हैं
वे मूल रूप से थे)।
जब नहीं दिया गया है, stash@{0} मान लिया गया है, अन्यथा एक संदर्भ होना चाहिए
फॉर्म का stash@{ }.
लागू करें [--सूचकांक] [-q|--शांत] [ ]
पॉप की तरह, लेकिन स्टेट को स्टैश सूची से न हटाएं। पॉप के विपरीत, शायद
कोई भी कमिट जो स्टैश सेव या स्टैश क्रिएट द्वारा बनाई गई कमिट की तरह दिखती है।
शाखा [ ]
नाम की एक नई शाखा बनाता है और उसकी जाँच करता है कमिट से शुरू करके
के जो मूल रूप से बनाया गया था, इसमें दर्ज किए गए परिवर्तनों को लागू करता है को
नया कार्यशील वृक्ष और सूचकांक। यदि वह सफल होता है, और का एक संदर्भ है
फॉर्म स्टैश@{ }, फिर यह गिर जाता है . जब नहीं दिया गया है, लागू होता है
नवीनतम वाला.
यह तब उपयोगी है जब जिस शाखा पर आपने git stash save चलाया था वह काफी बदल गई है
विरोध के कारण git stash apply विफल हो जाता है। चूँकि स्टैश को सबसे ऊपर लगाया जाता है
कमिट जो कि git stash चलाए जाने के समय HEAD था, यह मूल रूप से stashed को पुनर्स्थापित करता है
बिना किसी विवाद वाला राज्य.
स्पष्ट
सभी संग्रहीत अवस्थाएँ हटाएँ. ध्यान दें कि वे राज्य तब कांट-छांट के अधीन होंगे,
और पुनर्प्राप्त करना असंभव हो सकता है (देखें) उदाहरण संभावित रणनीति के लिए नीचे)।
ड्रॉप [-q|--शांत] [ ]
स्टैश सूची से एकल स्टैश्ड स्थिति को हटा दें। जब नहीं दिया गया है, यह
नवीनतम को हटा देता है. अर्थात stash@{0}, अन्यथा एक वैध स्टैश लॉग होना चाहिए
फॉर्म का संदर्भ stash@{ }.
बनाना
एक स्टैश बनाएं (जो एक नियमित कमिट ऑब्जेक्ट है) और उसका ऑब्जेक्ट नाम वापस करें, बिना
इसे रेफ नेमस्पेस में कहीं भी संग्रहीत करना। इसका उद्देश्य स्क्रिप्ट के लिए उपयोगी होना है।
संभवतः यह वह आदेश नहीं है जिसका आप उपयोग करना चाहते हैं; ऊपर "सहेजें" देखें.
की दुकान
के माध्यम से बनाए गए किसी दिए गए भंडार को संग्रहीत करें Git छिपाने की जगह बनाना (जो एक लटकता हुआ मर्ज कमिट है) में
स्टैश रेफरी, स्टैश रीफ्लॉग को अपडेट कर रहा है। इसका उद्देश्य स्क्रिप्ट के लिए उपयोगी होना है।
संभवतः यह वह आदेश नहीं है जिसका आप उपयोग करना चाहते हैं; ऊपर "सहेजें" देखें.
चर्चा
एक स्टैश को एक कमिट के रूप में दर्शाया जाता है जिसका पेड़ कार्यशील निर्देशिका की स्थिति को रिकॉर्ड करता है,
और इसका पहला पेरेंट HEAD पर कमिट है जब स्टैश बनाया गया था। का पेड़
जब स्टैश बनाया जाता है तो दूसरा पैरेंट इंडेक्स की स्थिति को रिकॉर्ड करता है, और इसे बनाया जाता है
प्रमुख प्रतिबद्धता का बच्चा. वंशावली ग्राफ़ इस तरह दिखता है:
.----डब्ल्यू
/ /
-----नमस्ते
जहां H, HEAD कमिट है, I एक कमिट है जो सूचकांक की स्थिति को रिकॉर्ड करता है, और W एक है
प्रतिबद्ध जो कार्यशील वृक्ष की स्थिति को रिकॉर्ड करता है।
उदाहरण
गंदे पेड़ में खींचना
जब आप किसी चीज़ के बीच में होते हैं, तो आप सीखते हैं कि ऊपर की ओर परिवर्तन हो रहे हैं
जो संभवतः आप जो कर रहे हैं उससे प्रासंगिक हैं। जब आपका स्थानीय परिवर्तन नहीं होता
अपस्ट्रीम में परिवर्तनों के साथ संघर्ष, एक साधारण गिट पुल आपको आगे बढ़ने देगा
आगे।
हालाँकि, ऐसे मामले हैं जिनमें आपके स्थानीय परिवर्तन अपस्ट्रीम के साथ विरोध करते हैं
परिवर्तन, और git पुल आपके परिवर्तनों को अधिलेखित करने से इंकार कर देता है। ऐसे में आप इसे छिपा सकते हैं
अपने परिवर्तन दूर करें, खींचें और फिर अनस्टैश करें, इस तरह:
$ गिट पुल
...
फ़ाइल फ़ुबार अद्यतित नहीं है, मर्ज नहीं हो सकती।
$ गिट स्टैश
$ गिट पुल
$ गिट स्टैश पॉप
बाधित कार्यप्रवाह
जब आप किसी चीज़ के बीच में होते हैं, तो आपका बॉस आता है और आपसे इसे ठीक करने की मांग करता है
तुरंत कुछ. परंपरागत रूप से, आप एक अस्थायी शाखा के लिए प्रतिबद्ध होंगे
अपने परिवर्तनों को दूर रखें, और आपातकालीन समाधान करने के लिए अपनी मूल शाखा में लौटें,
इस तरह:
# ...हैक हैक हैक...
$ गिट चेकआउट -बी my_wip
$ गिट कमिट -ए -एम "डब्ल्यूआईपी"
$ गिट चेकआउट मास्टर
$ आपातकालीन सुधार संपादित करें
$ git कमिट -ए -एम "जल्दी ठीक करें"
$ गिट चेकआउट my_wip
$ गिट रीसेट--सॉफ्ट हेड^
#...हैकिंग जारी रखें...
आप का उपयोग कर सकते हैं Git छिपाने की जगह उपरोक्त को सरल बनाने के लिए, इस प्रकार:
# ...हैक हैक हैक...
$ गिट स्टैश
$ आपातकालीन सुधार संपादित करें
$ git कमिट -ए -एम "जल्दी ठीक करें"
$ गिट स्टैश पॉप
#...हैकिंग जारी रखें...
आंशिक प्रतिबद्धताओं का परीक्षण
जब आप दो या दो से अधिक कमिट करना चाहते हैं तो आप git stash save --keep-index का उपयोग कर सकते हैं
कार्य वृक्ष में परिवर्तन, और आप प्रतिबद्ध होने से पहले प्रत्येक परिवर्तन का परीक्षण करना चाहते हैं:
# ...हैक हैक हैक...
$ git add --patch foo # इंडेक्स में केवल पहला भाग जोड़ें
$ git stash save --keep-index # अन्य सभी परिवर्तनों को stash में सहेजें
$ पहले भाग को संपादित/निर्माण/परीक्षण करें
$ git कमिट -m 'प्रथम भाग' # कमिट पूर्णतः परीक्षणित परिवर्तन
$ git stash पॉप # अन्य सभी परिवर्तनों पर काम करने के लिए तैयार रहें
# ... उपरोक्त पाँच चरणों को तब तक दोहराएँ जब तक कि एक प्रतिबद्धता शेष न रह जाए...
$ शेष भागों को संपादित/निर्माण/परीक्षण करें
$ git कमिट foo -m 'शेष भाग'
ग़लती से साफ़/गिरा दी गई चीज़ों को पुनर्प्राप्त करना
यदि आप गलती से छिपा हुआ सामान गिरा देते हैं या साफ़ कर देते हैं, तो उन्हें सामान्य तरीके से पुनर्प्राप्त नहीं किया जा सकता है
सुरक्षा तंत्र. हालाँकि, आप सूची प्राप्त करने के लिए निम्नलिखित मंत्र का प्रयास कर सकते हैं
वे चीज़ें जो अभी भी आपके भंडार में हैं, लेकिन अब पहुंच योग्य नहीं हैं:
गिट एफएससीके--पहुँचने योग्य नहीं |
ग्रेप प्रतिबद्ध | कट -d\ -f3 |
xargs git log --merges --no-walk --grep=WIP
onworks.net सेवाओं का उपयोग करके ऑनलाइन git-stash का उपयोग करें