git - आप केवल वर्तमान शाखा को कैसे खींच सकते हैं?




config pull (4)

मैंने इसे इस तरह से किया:

git pull origin "$(git branch | grep -E '^\* ' | sed 's/^\* //g')"

या

git pull origin $(git rev-parse --abbrev-ref HEAD)

यह वर्तमान शाखा को git branch शाखा से निकालता है, और उस शाखा को दूरस्थ मूल से खींचता है।

ध्यान दें, जैसे कि सेठ रॉबर्टसन ने कहा, जब कोई तर्क नहीं दिया जाता है तो केवल वर्तमान शाखा को संशोधित किया जाता है लेकिन सभी दूरस्थ शाखाओं को लाया जाता है। मैं सभी दूरस्थ शाखाओं को प्राप्त नहीं करना चाहता, इसलिए मैंने इसे इस तरह किया।

क्या कोई शाखा निर्दिष्ट करने के लिए इसे सेट अप करने के लिए एक कॉन्फ़िगर तरीका है?


हाँ, एक विन्यास है, जिसे .gitconfig में बदला जा सकता है, उदाहरण के लिए:

[push]
  default = current

जो वर्तमान शाखा को प्राप्त होने वाले छोर पर उसी नाम के साथ एक शाखा को अद्यतन करने के लिए धक्का देगा।

जॉचो:

git config --global --get push.default

देखें: git-scm


अद्यतन करें

मेरे द्वारा जोड़ा गया पुराना उत्तर किसी भी अधिक काम नहीं करता है: /। लेकिन मेरे द्वारा रखे गए PUSH संस्करण के बारे में कुछ संकेत मिलने के बाद, मेरा मतलब है कि यह उत्तर वास्तव में किसी को मदद कर रहा है जो खोज इंजन से यहां आ रहा है, इसलिए मैं इस उत्तर को रखूंगा।

Git के नए संस्करण के लिए इसे आज़माएँ:

$ git config --global push.default current

गिट पहले से ही केवल वर्तमान शाखा को खींचता है। यदि आपके पास एक ट्रैकिंग शाखा के रूप में स्थापित की गई शाखा है, तो आपको दूरस्थ शाखा को निर्दिष्ट करने की आवश्यकता नहीं है। git branch --set-upstream localbranch reponame/remotebranch ट्रैकिंग संबंध स्थापित करेगा। आप इसके बाद git pull [--rebase] और केवल उस शाखा को अपडेट किया जाएगा।

बेशक, सभी रिमोट ट्रैकिंग शाखाएं और रिमोट के लिए सभी रेफरी को अपडेट किया जाएगा, लेकिन केवल आपकी स्थानीय ट्रैकिंग शाखा को संशोधित किया जाएगा।





pull