अपनी alice
रिपॉजिटरी (पुश करने से पहले) में यह कोशिश करें :
git config push.default tracking
या, इसे अपने उपयोगकर्ता के लिए डिफ़ॉल्ट के रूप में कॉन्फ़िगर करें git config --global …
।
git push
origin
रिपॉजिटरी के लिए डिफ़ॉल्ट है (जो आम तौर पर रिपॉजिटरी है जिसमें से आपने वर्तमान रिपॉजिटरी को क्लोन किया है), लेकिन यह वर्तमान ब्रांच को पुश करने के लिए डिफ़ॉल्ट नहीं है - यह केवल उन शाखाओं को पुश करने में चूक करता है जो स्रोत रिपॉजिटरी और डेस्टिनेशन रिपॉजिटरी दोनों में मौजूद हैं।
push.default
विन्यास चर (देखें Git-config (1) ) नियंत्रण क्या git push
धक्का होगा जब यह नहीं किसी भी "refspec" तर्कों (यानी कुछ भंडार नाम के बाद) दिया जाता है। डिफ़ॉल्ट मान ऊपर वर्णित व्यवहार देता है।
इसके लिए संभावित मूल्य दिए गए हैं push.default
:
nothing
यह आपको "refspec" की आपूर्ति करने के लिए मजबूर करता है।
matching
(डिफ़ॉल्ट)
यह उन सभी शाखाओं को धक्का देता है जो स्रोत भंडार और गंतव्य भंडार दोनों में मौजूद हैं।
यह उस शाखा से पूरी तरह से स्वतंत्र है जिसे वर्तमान में चेक आउट किया गया है।
upstream
या tracking
(दोनों मानों का एक ही मतलब है। बाद में "रिमोट-ट्रैकिंग" शाखाओं के साथ भ्रम से बचने के लिए पदावनत कर दिया गया था। पूर्व को 1.7.4.2 में पेश किया गया था, इसलिए आपको बाद में उपयोग करना होगा यदि आप Git 1.7.3.1 का उपयोग कर रहे हैं। )
ये वर्तमान शाखा को उसके "अपस्ट्रीम" कॉन्फ़िगरेशन द्वारा निर्दिष्ट शाखा में धकेलते हैं।
current
यह वर्तमान शाखा को गंतव्य रिपॉजिटरी में उसी नाम की शाखा में धकेलता है।
ये अंतिम दो सामान्य मामलों के लिए समान होते हैं (जैसे स्थानीय मास्टर पर काम करना जो मूल / मास्टर को इसके अपस्ट्रीम के रूप में उपयोग करता है ), लेकिन वे अलग होते हैं जब स्थानीय शाखा का अपनी "अपस्ट्रीम" शाखा से अलग नाम होता है:
git checkout master
# hack, commit, hack, commit
# bug report comes in, we want a fix on master without the above commits
git checkout -b quickfix origin/master # "upstream" is master on origin
# fix, commit
git push
साथ push.default
के बराबर upstream
(या tracking
), पुश करने के लिए जाना होगा origin
के मास्टर शाखा। जब यह बराबर होता है current
, तो पुश origin
's क्विकफिक्स शाखा में जाता है।
matching
सेटिंग अपडेट हो जाएगा bare
के मास्टर अपने परिदृश्य में एक बार यह स्थापित किया गया है। इसे स्थापित करने के लिए, आप git push origin master
एक बार उपयोग कर सकते हैं ।
हालाँकि, upstream
सेटिंग (या हो सकता है current
) ऐसा लगता है कि जो आप होने की उम्मीद करते हैं उसके लिए यह एक बेहतर मैच हो सकता है, इसलिए आप इसे आज़माना चाहते हैं:
# try it once (in Git 1.7.2 and later)
git -c push.default=upstream push
# configure it for only this repository
git config push.default upstream
# configure it for all repositories that do not override it themselves
git config --global push.default upstream
(फिर, यदि आप 1.7.4.2 से पहले अभी भी एक गिट का उपयोग कर रहे हैं, तो आपको tracking
इसके बजाय उपयोग करने की आवश्यकता होगी upstream
)।