2010-11-05 9 views
14

क्षमा करें यदि यह प्रश्न पहले से ही पूछा गया है।विशिष्ट शाखा को पुश करने के लिए स्थानीय शाखा को कॉन्फ़िगर करें

जो एक शाखा का नाम दिया "परीक्षण" है "git_lab" नामक एक रेपो से

Am क्लोनिंग जब मैं का उपयोग करें "बी myname_test" एक स्थानीय नामित शाखा बनाने के लिए क्लोनिंग "myname_test" और स्थानीय क्लोन "myname_git_lab"

नाम है

जब मैं "गिट पुल" करता हूं तो यह स्वचालित रूप से "test" से "myname_test" में परिवर्तन लाता है और गिट पुश के लिए, मुझे रेपो और शाखा नाम निर्दिष्ट करने की आवश्यकता होती है।

$> Git दूरस्थ शो git_lab

स्थानीय शाखा 'Git पुल' के लिए कॉन्फ़िगर: myname_test दूरस्थ परीक्षण

साथ विलीन हो जाती है वहाँ एक रास्ता मैं कहाँ "कॉन्फ़िगर कर सकते हैं स्थानीय शाखा 'Git पुश' के लिए कॉन्फ़िगर किया गया है "ताकि मुझे शाखा और रेपो नाम निर्दिष्ट करने की आवश्यकता न हो?

उत्तर

26

यहां दो चीज़ें हैं जो आप यहां कर सकते हैं।

  • tracking को push.default सेट करें, ताकि यह, दूरस्थ शाखाओं वे ट्रैक, नहीं लोगों को वे के रूप में एक ही नाम हो सभी शाखाओं धक्का फिर उचित ट्रैकिंग जानकारी के साथ अपनी शाखा कॉन्फ़िगर कर देगा। (जैसे refs/heads/foo को origin और branch.master.merge को branch.master.remote निर्धारित किया है।)

  • पुश मैन्युअल। git push origin master:foo रिमोट origin पर आपकी स्थानीय master शाखा को शाखा foo पर धक्का देगी।

हालांकि, मैं सुझाव देंगे कि आप क्या वास्तव में क्या करना चाहते हैं बस शाखा के नाम एक ही करना है।

(आप या तो git config साथ config मानकों, जैसे git config push.default tracking सेट कर सकते हैं, या सीधे .git/config फ़ाइल का संपादन। द्वारा)

+2

"गिट कॉन्फ़िगर push.default ट्रैकिंग" काम किया .... धन्यवाद एक टन, सिर्फ जानना उत्सुक .... हमें इस कॉन्फ़िगरेशन सेटिंग को निर्दिष्ट करने की आवश्यकता क्यों है, मैंने सोचा कि जब हम -b विकल्प का उपयोग कर क्लोन करते हैं तो सब कुछ सेट हो जाता है। (branch.master.remote और branch.master.merge क्लोन के बाद स्वचालित रूप से सेट किया गया था) –

+1

@ सेंथिल: उन सेटिंग्स को वास्तव में स्वचालित रूप से बनाया जाता है, लेकिन धक्का का डिफ़ॉल्ट व्यवहार * मिलान * शाखाओं को धक्का देना है, शाखाओं को ट्रैक नहीं करना। इसलिए सेटिंग्स आमतौर पर केवल पुश/पुल को प्रभावित करती हैं, धक्का नहीं देती हैं। [Git config manpage] में push.default देखें (http://www.kernel.org/pub/software/scm/git/docs/git-config.html)। – Cascabel

+1

गिट शाखा - सेट-अपस्ट्रीम के बारे में क्या? –

0
git checkout --track origin/branchname 

वैकल्पिक रूप से, आप .git फ़ोल्डर में कॉन्फ़िगरेशन फ़ाइल को संपादित कर सकते हैं।

+0

धन्यवाद लेकिन स्थापना के दूरदराज के यूआरएल पुश करने के लिए दूरदराज के भंडार निर्दिष्ट करने के लिए है, मैं कैसे कर सकते हैं धक्का देने के लिए रिमोट-शाखा निर्दिष्ट करें? चूंकि मेरी स्थानीय शाखा का नाम और रिमोट शाखा का नाम अलग-अलग –

+0

ट्रैकिंग आपकी मदद करनी चाहिए। प्रतिक्रिया संपादित की। –

+0

ट्रैकिंग डिफ़ॉल्ट रूप से धक्का प्रभावित नहीं करती है। और यदि शाखा पहले से मौजूद है, तो 'गिट चेकआउट --ट्रैक' निश्चित रूप से ट्रैकिंग जानकारी सेट अप करने का तरीका नहीं है। – Cascabel

संबंधित मुद्दे