मैं Git में एक नई शाखा बनाता हूं:
git branch my_branch
धक्का दो:
git push origin my_branch
अब कहते हैं कि किसी ने सर्वर पर कुछ बदलाव किए हैं और मैं इससे हटना चाहता हूं origin/my_branch
। मैं करता हूँ:
git pull
लेकिन मुझे मिलता है:
You asked me to pull without telling me which branch you
want to merge with, and 'branch.my_branch.merge' in
your configuration file does not tell me, either. Please
specify which branch you want to use on the command line and
try again (e.g. 'git pull <repository> <refspec>').
See git-pull(1) for details.
If you often merge with the same branch, you may want to
use something like the following in your configuration file:
[branch "my_branch"]
remote = <nickname>
merge = <remote-ref>
[remote "<nickname>"]
url = <url>
fetch = <refspec>
See git-config(1) for details.
मैंने सीखा कि मैं इसके साथ काम कर सकता हूं:
git branch --set-upstream my_branch origin/my_branch
लेकिन मेरे द्वारा बनाई गई प्रत्येक शाखा के लिए मुझे ऐसा करने की आवश्यकता क्यों है? यह स्पष्ट नहीं है कि अगर मैं धक्का my_branch
में origin/my_branch
, तो मैं खींचने के लिए चाहते हो जाएगा origin/my_branch
में my_branch
? मैं इसे डिफ़ॉल्ट व्यवहार कैसे बना सकता हूं?
--set-upstream
विकल्प को हटा दिया गया है। आपको उपयोग करना चाहिए --track
या --set-upstream-to
इसके बजाय।
--set-upstream
पदावनत किया जाता है, तो शायद git devों को इसे उस मदद संदेश से हटा देना चाहिए, जब आप git push
बिना किसी विकल्प के साथ चलते हैं और कोई अपस्ट्रीम सेट होने पर प्रदर्शित होता है?
git branch --set-upstream
पदावनत है। git push --set-upstream
नहीं है।
branch.autosetupmerge
इसका मतलब है कि एक नई शाखा के लिए अपस्ट्रीम कॉन्फ़िगरेशन केवल स्वचालित रूप से सेट किया जाता है जब एक रिमोट-ट्रैकिंग शाखा (जैसे<remote-name>/<branch-name>
) से एक शाखा बनाते हैं (देखें git-config (1) )। आप शायद मौजूदा स्थानीय शाखाओं से अपनी शाखाएँ बना रहे हैं। यदि आप किसी दूरस्थ शाखा की नोक से (स्थानीय शाखा पर होने के बावजूद) प्रभावी रूप से शाखा कर रहे हैं, तो आपgit branch my_branch <remote-name>/<branch-name>
अपस्ट्रीम कॉन्फ़िगरेशन को स्वचालित रूप से सेटअप करने के लिए उपयोग कर सकते हैं ।