2012-01-20 6 views
42

मैं पर पढ़ रहा था:'गिट रिमोट एड अपस्ट्रीम' सहायता क्या प्राप्त करती है?

आपका भंडार अद्यतित

क्रम विकास ट्रंक से नवीनतम अद्यतन एक एक बार कर पाने के लिए: https://wiki.diasporafoundation.org/Git_workflow#Rebase_your_development_branch_on_the_latest_upstream

यहाँ एक उद्धरण है द्वारा रिमोट के रूप में मुख्य गिटहब रेपो स्थापित करने के लिए सेटअप:

$ git remote add upstream git://github.com/diaspora/diaspora.git 

नवीनतम अपस्ट्रीम

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

रूप में ऊपर विस्तृत आप एक नदी के ऊपर शाखा की स्थापना की है, और एक विकास शाखा 100 रीट्वीट-बग सुधार कहा जाता है, आप नदी के ऊपर, अद्यतन अपने स्थानीय गुरु को अद्यतन करना चाहते हैं, और इतने तरह से अपनी शाखा rebase हैं:

$ git fetch upstream 

$ git checkout master 

$ git rebase upstream/master 

$ git checkout 100-retweet-bugfix 

[सुनिश्चित करें कि सभी शाखा में आवश्यक के रूप में के लिए प्रतिबद्ध है]

$ git rebase master 

क्यों जोड़ रहा है एक 'दूरस्थ नदी के ऊपर' इस मामले में जरूरत? Coudn't मैं बस किया है:

$ git checkout master 

$ git pull origin master 

$ git checkout 100-retweet-bugfix 

[सुनिश्चित करें कि सभी शाखा में आवश्यक के रूप में के लिए प्रतिबद्ध है]

$ git rebase master 
+0

आपको 'गिट रिमोट एड' करना चाहिए 'गिट एड रिमोट' नहीं ... – Honey

उत्तर

52

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

तो "मूल" आपके कांटा रेपो का एक क्लोन है, जिससे आप धक्का और खींचते हैं। "अपस्ट्रीम" मुख्य रेपो का नाम है, जहां से आप खींचते हैं और अपने कांटा के क्लोन को अपडेट करते हैं, लेकिन आपके पास पुश एक्सेस नहीं है।

+1

धन्यवाद @manojlds! मेरे पास यहां एक फॉलो अप प्रश्न है: [लिंक] (http://stackoverflow.com/questions/8948964/git-rebase-master-then-push-origin-branch-results-in-non-fast-forward-error) – ben39

13

आप अपने खुद के origin जो upstream नहीं है जब यह उपयोगी है। दूसरे शब्दों में, आपके पास अपना origin रेपो हो सकता है कि आप विकास और स्थानीय परिवर्तन करते हैं और फिर कभी-कभी upstream परिवर्तनों को मर्ज करते हैं। आपके उदाहरण और हाइलाइट किए गए टेक्स्ट के बीच का अंतर यह है कि आपका उदाहरण मानता है कि आप सीधे अपस्ट्रीम रेपो के क्लोन के साथ काम कर रहे हैं। हाइलाइट किए गए पाठ का मानना ​​है कि आप अपने खुद के रेपो के क्लोन पर काम कर रहे हैं, संभवतः मूल रूप से अपस्ट्रीम का क्लोन था।

+0

धन्यवाद @ धन्यवाद! यह वास्तव में सहायक था। मेरे पास यहां एक फॉलो अप प्रश्न है: [लिंक] (http://stackoverflow.com/questions/8948964/git-rebase-master-then-push-origin-branch-results-in-non-fast-forward-error) – ben39

2

मैं तुम्हें एक Git रेपो है, तो यह "पूर्वव्यापी प्रभाव से forking"

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

लेकिन मैं गलत हो सकता था।

+0

5 साल पहले प्रश्न का उत्तर देने के बाद यह उत्तर क्या लाता है? और आप अभी भी सही उत्तर के बारे में भी सुनिश्चित नहीं हैं ... –

+0

@MaciejJureczko मैं सोच रहा हूं कि "पीछे हटने वाले कांटा" कैसे है, अगर यह प्रश्न/उत्तर चर्चा कर रहा है कि कैसे (जो मुझे लगता है कि यह है, लेकिन मैं हूं निश्चित नहीं)। फिर इस सवाल का इस्तेमाल अन्य सवालों के जवाब के रूप में किया जा सकता है। https://stackoverflow.com/questions/30472771/marking-a-repo-as-a-fork-in-github-after-the-fact ... अगर यह पीछे हटने वाला कांटा है, तो यह अब खोजने योग्य हो सकता है उन खोज शब्द। मुझे यह सोचने में थोड़ी देर लग गई कि शायद एक अपस्ट्रीम रिपोजिटरी जोड़ना जो मैं ढूंढ रहा था। यदि ओपी एकमात्र दर्शक थे, तो वे "5 साल पहले" से प्रश्न संग्रहित नहीं करेंगे। – Onceler

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