2010-06-06 11 views
10

मैं एक भंडार बनाए रख रहा हूं।गिट आंशिक पुल

एक और योगदानकर्ता ने को अन्य भंडार बी पर क्लोन किया है।

बाद में, अन्य योगदानकर्ता जोड़ा फ़ाइलों एफ, जो मेरे लिए अप्रासंगिक है, बी में।

अब मैं वापस बी में परिवर्तन मर्ज करने के लिए एक के लिए, लेकिन एफ करने के बिना चाहते हैं। ऐसा कैसे करें?

+0

शायद यह धागा आपको मदद करता है: http://www.mail-archive.com/[email protected]/msg00653.html एचटीएच –

उत्तर

7

वहां से सिर और चेरी-पिक लाएं।

git remote add jessica git://jessica.com/repo.git 
git fetch jessica master 
git cherry-pick 235a5 
... 
1

संक्षिप्त उत्तर यह है कि आप गिट के साथ "आंशिक रूप से खींच नहीं सकते"।

हालांकि, अगर आप बी से परिवर्तन खींच सकते हैं, और फिर Git-रिबेस (1) या Git फिल्टर शाखा का उपयोग (1) के लिए प्रतिबद्ध (रों) युक्त एफको संशोधित करने के लिए धकेलने से पहले । ध्यान रखें कि यह बदल जाएगा (बी के सापेक्ष) आपके द्वारा संशोधित प्रतिबद्धताओं के हैंश, इसलिए बी पर भविष्य में विलय विलय सामान्य से कम बुद्धिमान होगा।

the Pro Git chapter on Rewriting History पर एक नज़र डालें।

2

तुम कर सकते हो:

git checkout <remote_branch> <paths> 

जहां <paths> फ़ाइलें कि आप वास्तव में चाहते हैं। यदि आप चाहते हैं कि फ़ाइलों को अलग-अलग निर्देशिका में अलग-अलग निर्देशिका में हैं, तो आप सबसे आसान हैं, क्योंकि आप वाइल्डकार्ड का उपयोग कर सकते हैं।

वैकल्पिक रूप से, कोशिश:

git pull --squash 

इस एक सा मैनुअल हो सकता है, आप तो जाने के लिए और करने से पहले फ़ाइलों को आप नहीं चाहते नष्ट करने के लिए है के रूप में, लेकिन यह भी यह करने के लिए एक ही रास्ता है यदि आप जिन फ़ाइलों को नहीं चाहते हैं, वे एक ही प्रतिबद्धता के हिस्से के रूप में जोड़े गए हैं जो चाहते हैं।

(काफी प्रमुख) नकारात्मक पक्ष यह है कि आप दूरस्थ शाखा का प्रतिबद्ध इतिहास खो देते हैं।

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