2013-01-17 17 views
51

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

मैं एक नई शाखा बनाने और फिर काँटेदार रिपोजिटरी से खींच लेकिन यह शिकायत क्योंकि नई शाखा मास्टर शाखा के साथ ही स्थानीय फ़ाइल परिवर्तन की एक प्रति है की कोशिश की, तो यह कहते हैं

error: Your local changes to the following files would be overwritten by merge

तो मैं शाखा को अन्य भंडार में अपने स्थानीय भंडार पर एक नई शाखा में कैसे खींच सकता हूं?

मुझे उम्मीद है कि यह समझ में आता है। यदि नहीं, तो यह मेरा भंडार है: https://github.com/austonst/cbitcoin/tree/linuxBuild

मैं MatthewLM/cbitcoin के लिए अपने स्थानीय भंडार पर कि शाखा हैं: https://github.com/MatthewLM/cbitcoin

आप देख सकते हैं, किसी शाखा "linuxBuild" के साथ एक नया भंडार बनाया गया है।

मैं यह कैसे कर सकता हूं?

उत्तर

102

आपको यह सुनिश्चित करने की ज़रूरत है कि git status दिखाता है कि आपके स्थानीय भंडार में कोई अस्थिर परिवर्तन मौजूद नहीं है।
आप अपने स्थानीय परिवर्तनों को छूने और उस शाखा को खींचने से पहले ऐसा कर सकते हैं। इसके बाद आप अपना स्टैश लागू कर सकते हैं।


आप अपने स्थानीय भंडार में कांटा की शाखा संरचना को फिर से बनाना चाहते हैं, आप कर सकते हैं निम्नलिखित:

git remote add fork <url of fork> 
git fetch fork 
git checkout -b fork_branch fork/<branch> 

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

मुझे लगता है कि आपको अभी भी यह सुनिश्चित करने की ज़रूरत है कि आपकी कार्यशील प्रति में कोई बदलाव नहीं है।

+0

ठीक है, धन्यवाद। यह अच्छा होगा अगर मैं अपने स्थानीय परिवर्तन चाहता था और शाखा में कांटे से नहीं मिलती थी। लेकिन क्या होगा यदि मैं चाहता हूं कि नई शाखा बिल्कुल ठीक हो, तो यह कांटा भंडार पर है? इस नई शाखा के लिए कांटा के बाद इसमें अपने स्वयं के भंडार से किसी भी काम को हटाने में शामिल है। इस तरह ऐसा होगा जैसे शाखा एक फोर्कड की बजाय अपने स्वयं के भंडार पर बनाई गई थी। –

+0

वैसे आपका जवाब मुझे जो करना है, उसके लिए एक स्वीकार्य समाधान है, फिर भी अगर मैं एक नई शाखा को एक भंडार में खींच सकता हूं तो मुझे इसे और अधिक सीधा-आगे मिल जाएगा। मैं कुछ और इंतजार करूँगा यह देखने के लिए कि दूसरों क्या कहता है। –

+0

@MatthewMitchell: कृपया अपडेट की जांच करें। क्या आप इसी की तलाश में हैं? –

3

दूरस्थ जोड़ने के बिना विधि।

git checkout --orphan fork_branch 
git reset --hard 
git pull <url of fork> <branch> 
संबंधित मुद्दे