2012-06-01 10 views
6

गिट में, मैं कभी-कभी लंबी दौड़ वाली शाखाओं पर काम करता हूं। जब मैं तैयार हूं तो विलय को आसान बनाने के लिए समय-समय पर मास्टर पर रीबेज करना पसंद करता हूं।क्या मैं एक कमांड में गिट रिमोट शाखा को नष्ट और पुन: बना सकता हूं?

पुन: प्रयास करने के बाद, मैं पहले से धक्का वाली शाखा को रिमोट पर धक्का नहीं दे सकता, क्योंकि मेरी शाखा का इतिहास अब उस शाखा के रिमोट के इतिहास से सहमत नहीं है। तो मुझे इसे पहले हटाना होगा।

यह मेरे वर्तमान कार्यप्रवाह है:

git checkout my_branch 
git rebase master 
git push origin :my_branch # Delete remote version of the branch 
git push origin my_branch # Push up my new version of history on this branch 

वहाँ एक भी परमाणु आदेश है कि पिछले दो आदेशों की जगह सकता है?

+0

मुझे नहीं पता था कि आप एक पुनर्स्थापित शाखा को धक्का नहीं दे सकते। किसी को पता है क्यों ?! रीबेस एक काफी आम ऑपरेशन प्रतीत होता है, यह "बस काम क्यों नहीं करेगा"? – Shahbaz

+2

उद्धरण http://help.github.com/rebase _ "यह उन चीजों को पुनर्जीवित करने के लिए बुरी आदत माना जाता है जिन्हें आपने पहले ही रिमोट रेपो में धक्का दिया है। ऐसा करने से गिट देवताओं के क्रोध का आह्वान हो सकता है ... आपको चेतावनी दी गई है "_ – Stefan

+0

@ स्टेफान, ओह ठीक है, अच्छा पुराना गिट-विलय यह मेरे लिए है। – Shahbaz

उत्तर

10

यदि आपको दूरस्थ शाखा को फिर से लिखने की अनुमति है, तो आप git push --force my_remote my_branch का उपयोग कर सकते हैं।

+2

यह पूछे जाने वाले प्रश्न को हल करेगा, लेकिन स्टीफन सही रास्ते पर है। रिमोटिंग जो आप पहले से ही रिमोट पर धकेल चुके हैं, आमतौर पर एक अच्छा अभ्यास नहीं है। – Emily

+0

ठीक है, अगर आप उस शाखा पर काम कर रहे अकेले हैं तो शायद यह ठीक है। – Stefan

+0

@ स्टेफन - यह बिल्कुल मेरा मामला है; यह मेरी अनन्य शाखा है। मैं इसे अन्यथा नहीं करूँगा। –

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