2011-06-08 15 views
46

लोगों के लिए गिट पुश,रिमोट शाखा

मैंने एक रेपो क्लोन किया था। मैं निम्न आदेश जारी करके इसे से बाहर एक शाखा बनाई गई एक सुविधा पर काम करने की:

git branch fix78

तो मैं

git checkout fix78

द्वारा उस शाखा पर काम किया है कि मैं इस के लिए प्रतिबद्ध बनाना जारी रखा स्थानीय शाखा। अब मैं रेपो को यह पुश करने के लिए करना चाहता था और इसलिए मैं निम्न आदेश जारी:

git push origin master:fix78

मैं एक वेब ब्राउज़र से रेपो देखी और देखा कि एक नई शाखा fix78 बुलाया रेपो पर बनाया गया था। लेकिन मेरे पास कोई भी काम नहीं था जिसे मैंने बनाया था।

मैं यहाँ क्या गलत कर रहा हूं? यही वह है जिसे मैं प्राप्त करने की कोशिश कर रहा हूं:

एक रेपो (एसवीएन लिंगो में मास्टर (ट्रंक) है), अब जब मैं एक फीचर पर काम कर रहा हूं, तो मैं इसकी स्थानीय शाखा बनाना चाहता हूं और फिर मैं भी चाहता हूं इस शाखा में रेपो में जांच करने के लिए (ताकि अन्य टीम के सदस्य देख सकें कि मैं किस पर काम कर रहा हूं), तो मैं चाहता हूं कि मेरी स्थानीय शाखा इस रिमोट शाखा के साथ समन्वयित हो।

कोई भी मदद/प्रतिक्रिया पूरी तरह से भयानक होगी।

धन्यवाद।

उत्तर

60

git push origin master:fix78 स्थानीय मास्टर को फिक्स 78 नामक रिमोट शाखा में धक्का देता है। आप स्थानीय शाखा fix78, जो एक ही वाक्य रचना है पुश करने के लिए चाहता था, लेकिन बिना master:

आप git push origin :fix78 कर दूरस्थ शाखा को हटाने के लिए उसे ठीक कर सकते हैं और फिर git push origin fix78 दूरस्थ रेपो के लिए अपने स्थानीय शाखा पुश करने के लिए।

+0

भयानक, बहुत बहुत शुक्रिया, मैं पूरी तरह Git धक्का मूल स्वामी के बीच का अंतर समझ में आ: fix78 और Git धक्का मूल: fix78 – Rubyalto

+0

@Rubyalto इस जवाब ... – Bzazz

51

धक्का आदेश

git push remote_name source_ref:destination_ref 

सभी आप अपनी त्रुटि को ठीक करने करने की ज़रूरत के रूप

git push origin +fix78:fix78 

है प्लस इंगित करता है कि आपको लगता है कि शाखा संभावित इतिहास को खो देने के बारे में परवाह नहीं है क्योंकि पिछले धक्का एक त्रुटि थी।

वैकल्पिक वाक्य रचना

git push -f origin fix78 

है अगर आप गंतव्य को छोड़ देते हैं, यह निहित है कि यह एक ही नाम है। यदि रिमोट पर किसी विशेष शाखा में ट्रैकिंग की स्थापना की जाती है तो यह उस पर जायेगी।

git push -f origin :fix78 

और

git push --delete origin fix78 

पहले के रूप में "fix78 में कुछ भी नहीं धक्का" जो इसे हटा देता है पढ़ा जाता है: शाखाओं हटाया जा रहा है 2 वाक्यविन्यास, वर्ष है।

एक चाल यह है कि यदि आप दूरस्थ नाम के रूप में . निर्दिष्ट करते हैं, तो यह वर्तमान रेपो को रिमोट के रूप में दर्शाता है। यह स्थानीय शाखा को इसे जांचने के बिना अद्यतन करने के लिए उपयोगी है:

git push . origin/master:master 

चेकआउट मास्टर के बिना मास्टर अपडेट करेगा।

आशा इस मदद करता है

+0

धन्यवाद स्वीकार करें, इस मदद करता है। – Rubyalto

+0

दरअसल, इससे मदद मिली। प्रविष्टि के लिए धन्यवाद! –

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