धक्का-मुक्की का क्या मतलब है?


323

मेरे पास गिट के दो अलग-अलग संस्करण हैं। 1.6.2 संस्करण में, विकल्प git pushनहीं है -u। यह केवल 1.7.x संस्करण में दिखाई देता है।

डॉक्स से, -uचर से संबंधित है

branch.<name>.merge

में है git config। यह चर नीचे वर्णित है:

Defines, together with branch.<name>.remote, the upstream branch 
for the given branch. It tells git fetch/git pull which branch to merge.

अपस्ट्रीम ब्रांच क्या है?


1
यह भी देखें stackoverflow.com/questions/2739376/...
VonC

जवाबों:


360

"अपस्ट्रीम" मुख्य रेपो को संदर्भित करेगा जो अन्य लोगों से खींच रहा होगा, जैसे आपका गिटहब रेपो। -U विकल्प स्वचालित रूप से आपके लिए अपस्ट्रीम सेट करता है, जो आपके रेपो को केंद्रीय एक से जोड़ता है। इस तरह, भविष्य में, गिट "जानता है" कि आप कहां धक्का देना चाहते हैं और आप कहां से खींचना चाहते हैं, इसलिए आप उपयोग कर सकते हैं git pullया git pushबिना तर्क के। थोड़ा नीचे, यह लेख इस अवधारणा को समझाता और प्रदर्शित करता है।


19
मैं देखता हूं कि आपने जिस लेख से लिंक किया है वह इस ओर इशारा करता है, लेकिन चूंकि यह एक गोत्र का कुछ है, मुझे लगता है कि यह इंगित करने के लायक है कि जिस शाखा के साथ धक्का दिया गया git push है वह अपस्ट्रीम शाखा कॉन्फ़िगरेशन से प्रभावित नहीं है जब तक कि आपने push.defaultसेट नहीं किया है , tracking(या upstreamगिट के बाद के संस्करणों में)।
मार्क लोंगेयर

मुझे समझ में नहीं आ रहा है कि एग्लिट ​​एगिट दोनों की पेशकश क्यों करता है?
हैवगेस डेस

23
@ हेवगेस शायद उसी कारण से कि ग्रहण भी दुख और निराशा दोनों प्रदान करता है।
Twiz

9

यह अब अप-टू-डेट नहीं है!

Push.default is unset; its implicit value has changed in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the traditional behavior, use:

  git config --global push.default matching

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

  git config --global push.default simple

When push.default is set to 'matching', git will push local branches
to the remote branches that already exist with the same name.

Since Git 2.0, Git defaults to the more conservative 'simple'
behavior, which only pushes the current branch to the corresponding
remote branch that 'git pull' uses to update the current branch.

1
लेकिन झंडा -uअब क्या खड़ा है? जब हम नया रेपो बनाते हैं, तब भी गीथ द्वारा इस ध्वज का उपयोग करने की सिफारिश की जाती है ...
जीन पॉल

8
@JeanPaul - -u विकल्प निम्न कार्य करता है: प्रत्येक शाखा के लिए जो अद्यतित या सफलतापूर्वक धक्का दिया गया है, अपस्ट्रीम (ट्रैकिंग) संदर्भ जोड़ें, जिसका उपयोग तर्क-कम गिट-पुल और अन्य कमांड द्वारा किया जाता है। इसलिए, अपनी स्थानीय शाखा को -u विकल्प के साथ धकेलने के बाद, यह स्थानीय शाखा स्वचालित रूप से दूरस्थ शाखा से जुड़ जाएगी, और आप बिना किसी तर्क के गिट पुल का उपयोग कर सकते हैं।
पीटर पाइपर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.