चेतावनी: push.default परेशान है; Git 2.0 में इसका निहित मूल्य बदल रहा है


1623

मैं अभी कुछ समय के लिए Git का उपयोग कर रहा हूं और हाल ही में एक अपडेट डाउनलोड किया है केवल इस चेतावनी संदेश को खोजने के लिए जब मैं कोशिश करता हूं push

warning: push.default is unset; its implicit value is changing in 
Git 2.0 from 'matching' to 'simple'. To squelch this message 
and maintain the current behavior after the default changes, use: 

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use: 

  git config --global push.default simple

मैं स्पष्ट रूप से उल्लिखित मूल्यों में से एक में इसे सेट कर सकता हूं, लेकिन उनका क्या मतलब है? बीच क्या अंतर है simpleऔर matching?

यदि मैं इसे एक ग्राहक पर बदलता हूं तो क्या मुझे अन्य ग्राहकों पर कुछ भी करने की आवश्यकता होगी, जिनके साथ मैं रेपो साझा करता हूं?




1
नोट: git 2.8 (मार्च 2016) उस चेतावनी को हटा देगा! देखें stackoverflow.com/a/22356644/6309
VonC

जवाबों:


2148

यह डॉक्स में बहुत विस्तार से बताया गया है , लेकिन मैं संक्षेप में बताने की कोशिश करूंगा:

  • matchingसाधन git pushहोगा अपने सभी स्थानीय शाखाओं धक्का रिमोट पर ही नाम के साथ लोगों को। यह गलती से एक ऐसी शाखा को धकेलना आसान बनाता है जिसका आप इरादा नहीं करते थे।

  • simpleइसका मतलब केवल वर्तमान शाखा को उसी से धक्काgit push होगा जो git pullइससे खींचेगा , और यह भी जांच करेगा कि उनके नाम मेल खाते हैं। यह अधिक सहज व्यवहार है, यही वजह है कि डिफ़ॉल्ट को इसमें बदला जा रहा है।

यह सेटिंग केवल आपके स्थानीय क्लाइंट के व्यवहार को प्रभावित करती है, और यह स्पष्ट रूप से निर्दिष्ट करके ओवरराइड किया जा सकता है कि आप किन शाखाओं को कमांड लाइन पर पुश करना चाहते हैं। अन्य ग्राहकों की अलग-अलग सेटिंग्स हो सकती हैं, यह केवल तब प्रभावित होता है जब आप निर्दिष्ट नहीं करते हैं कि आप किन शाखाओं को धक्का देना चाहते हैं


16
इस बदलाव को जानकर खुशी हुई। जब मैं गित करने के लिए नया था तो मैंने गलती से सभी स्थानीय शाखाओं git pushको धक्का दे दिया, यह सोचकर कि केवल वर्तमान शाखा को धक्का दिया जाएगा।
rahul286

51
मकसद यह है कि, अनुभवजन्य रूप से, नए डिफ़ॉल्ट व्यवहार की सबसे ज्यादा उम्मीद है
ब्लेक मिलर

125
यह बहुत बेहतर होगा कि आप चेतावनी संदेश में अपना शानदार स्पष्ट सारांश रखें, बजाय निर्देश के कि हमें दस्तावेज़ खोलने और एक स्ट्रिंग की खोज करने के लिए कहें।
हर्ट्ज़स्प्रंग

116
"डॉक्स में यह बहुत स्पष्ट रूप से समझाया गया है" निश्चित रूप से यह है कि अगर आप सही पृष्ठ पर समाप्त होते हैं, हालांकि गिट पुश के लिए मैनुअल में सरल शब्द का भी उल्लेख नहीं है , जो संभवतः इतने सारे लोग हैं जो इसके बजाय यहां समाप्त हो गए हैं ।
गेरी

36
हमार का सारांश गिट डॉक्स की तुलना में अधिक संक्षिप्त व्याख्या है।
ए जे।

19

मुझे लगता है कि यह एक पुरानी पोस्ट है, लेकिन जैसा कि मैंने अभी भी एक ही मुद्दे में भाग लिया था और मुझे लगता है कि मुझे थोड़ा सा जोड़ना होगा, इसका जवाब खोजने में परेशानी हुई।

तो @ हमार का जवाब सही है। उपयोग करना push.default simple, एक तरह से, अपनी शाखाओं पर ट्रैकिंग को कॉन्फ़िगर करने की तरह है, ताकि आपको पुश और पुलिंग करते समय रिमोट और शाखाएं निर्दिष्ट करने की आवश्यकता न हो। matchingविकल्प दूरस्थ डिफ़ॉल्ट पर उनकी संगत समकक्षों की सभी शाखाओं को धक्का होगा (जो पहले एक है कि स्थापित किया गया था जब तक आप अपने रेपो अन्यथा कॉन्फ़िगर कर दिया है है)।

एक बात जो मुझे आशा है कि अन्य लोग भविष्य में उपयोगी पाएंगे, मैं ओएस एक्स माउंटेन लायन पर जीआईटी 1.8 चला रहा था और इस त्रुटि को कभी नहीं देखा। Mavericks को अपग्रेड करना वह है जो अचानक बना हुआ है, यह दिखा रहा है (रनिंग git --versionदिखाएगा git version 1.8.3.4 (Apple Git-47)जो मैंने ओएस के अपडेट तक कभी नहीं देखा था।


2
मैंने भी Mavericks में अपग्रेड करने के बाद इसे देखना शुरू कर दिया। इसलिए मुझे लगता है कि गिट को मावेरिक्स के रूप में उसी समय उन्नत किया गया था, जैसे आप आसन्न कर रहे हैं।
प्रति लंडबर्ग

8

यदि आपको simpleकॉन्फ़िगरेशन में मान के बारे में शिकायत करने वाले संदेश से संदेश मिलता है , तो अपनी जांच करें git version

उन्नयन के बाद XCode(एक पर Macचल रहा Mountain Lionहै, जो भी अपग्रेड किया गया) gitसे 1.7.4.4 करने के लिए 1.8.3.4 , गोले शुरू कर दिया इससे पहले कि उन्नयन अभी भी Git चल रहे थे 1.7.4.4 और मूल्य के बारे में शिकायत simpleवैश्विक config में push.default के लिए।

इसका समाधान पुराने संस्करण को चलाने वाले गोले को बंद करना gitऔर नए संस्करण का उपयोग करना था!


13
मैं एक ताजा Xcode इंस्टॉल का उपयोग कर रहा हूं (git संस्करण 1.8.5.2 है) और मैं तब भी इस त्रुटि का सामना कर रहा था जब तक मैं भाग नहीं गया:git config --global push.default simple
सैम-ग्राहम

2

मैं सोच रहा था कि मुझे उबंटू 16.04 (जो गिट 2.7.4 के साथ आता है) पर वह बड़ा चेतावनी संदेश मिल रहा था, लेकिन आर्क लिनक्स पर नहीं। कारण यह है कि जीआईटी 2.8 (मार्च 2016) में चेतावनी को हटा दिया गया था :

Git संस्करण 2.0 के चारों ओर संक्रमण के पार, उपयोगकर्ता को पुश.default कॉन्फ़िगरेशन चर की स्थापना के बिना "git पुश" को चलाने पर बहुत तेज़ चेतावनी मिलती थी। हम अब चेतावनी नहीं देते क्योंकि संक्रमण बहुत समय पहले पूरा हो गया था।

यदि आपको Git 2.8 और बाद में है तो आपको चेतावनी दिखाई नहीं देगी और push.defaultतब तक सेट करने की आवश्यकता नहीं है जब तक आप डिफ़ॉल्ट 'simple'व्यवहार को बदलना नहीं चाहते ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.