संक्षिप्त जवाब
यदि आप वास्तव में स्पष्ट होना पसंद करते हैं और -uआवश्यक होने पर विकल्प का उपयोग करते हैं , लेकिन अभी संपूर्ण लिखना नहीं चाहते हैं:
git push -u origin foo
तो आप निम्नलिखित उपनाम का उपयोग कर सकते हैं:
[alias]
push-u = !git push -u origin $(git symbolic-ref --short HEAD)
और बस टाइप करें:
git push-u
लंबा जवाब
आमतौर पर, -u(शॉर्टहैंड के लिए --set-upstream) की आवश्यकता तब होती है जब हमने सिर्फ एक नई स्थानीय शाखा और प्रतिबद्ध बनाया है, और हम इसे ऊपर की ओर धकेलना चाहते हैं। रिमोट रिपॉजिटरी की नई शाखा अभी तक नहीं है, इसलिए हमें कमिट को पुश करने से पहले रिमोट ब्रांच बनाने और ट्रैक करने के लिए गिट को बताने की जरूरत है। यह केवल शाखा पर पहले धक्का के लिए आवश्यक है। यहाँ एक विशिष्ट परिदृश्य है:
git checkout -b foo # Create local branch
git commit -m "Foo" # Create local commit
git push -u origin foo # Create and track remote branch, and push commit
git commit -m "Bar" # Create local commit
git push # Push commit
व्यक्तिगत रूप से, मुझे git push -uदूरस्थ शाखा बनाते समय स्पष्ट होने की आवश्यकता है : यह एक बहुत ही महत्वपूर्ण ऑपरेशन है, दुनिया के लिए एक नई शाखा साझा करना।
हालाँकि, मुझे नफरत है कि हमें स्पष्ट रूप से लिखना होगा git push -u origin foo। न केवल यह टाइप करने के लिए एक दर्द है, लेकिन इससे भी महत्वपूर्ण बात यह है कि यह काफी त्रुटिपूर्ण है! शाखा नाम लिखते समय गलती करना आसान है, और नई दूरस्थ शाखा में आपकी स्थानीय शाखा के समान नाम नहीं होगा! ज्यादातर मामलों में, वास्तव में, आप चाहते हैं कि अपस्ट्रीम रिपॉजिटरी हो origin, और अपस्ट्रीम शाखा का आपकी स्थानीय शाखा के समान नाम हो।
इसलिए, मैं अपने में निम्नलिखित उपनाम का उपयोग कर रहा हूं .gitconfig, जो मार्क द्वारा प्रदान किए गए उत्कृष्ट उत्तर का सबसेट है :
[alias]
push-u = !git push -u origin $(git symbolic-ref --short HEAD)
अब, हम निम्नलिखित कर सकते हैं, जो अभी भी स्पष्ट है, लेकिन कम त्रुटि-प्रवण:
git checkout -b foo # Create local branch
git commit -m "Foo" # Create local commit
git push-u # Create and track remote branch, and push commit
git commit -m "Bar" # Create local commit
git push # Push commit
push.defaultऔरbranch.<name>.mergeविकल्पों का उपयोग करना संभव है ?