git - रिमोट ब्रांच को किसी और के रेपो से कैसे खींचें




github git-branch (2)

मुझे गिटहब पर होस्ट किया गया एक प्रोजेक्ट मिला है जिसे किसी ने फोर्क किया है। अपने कांटे पर, उन्होंने एक नई शाखा "foo" बनाई है और कुछ बदलाव किए हैं। मैं अपने रेपो में "फू" नामक एक नई शाखा में अपने "foo" को कैसे खींचूं?

मैं समझता हूं कि वे मुझे एक पुल अनुरोध जमा कर सकते हैं, लेकिन मैं इस प्रक्रिया को खुद शुरू करना चाहता हूं।

निम्नलिखित मान लें:

  1. क्योंकि उन्होंने मेरी परियोजना को फोर्क किया, दोनों हमारे प्रतिनिधि एक ही 'इतिहास' साझा करते हैं
  2. यद्यपि गिटहब दिखाता है कि उनकी परियोजना को मेरी ओर से फोर्क किया गया था, लेकिन मेरे स्थानीय भंडार में इस व्यक्ति की परियोजना का कोई संदर्भ नहीं है। क्या मुझे रिमोट के रूप में अपना जोड़ना है?
  3. मेरे पास अभी तक "foo" नामक एक शाखा नहीं है - डुनो अगर मुझे मैन्युअल रूप से इसे पहले या क्या बनाना है।
  4. मैं निश्चित रूप से यह एक अलग शाखा में खींचना चाहता हूं, न कि मेरे गुरु।

मुझे उम्मीद है कि कुछ समझ में आता है।


अगर एंटाक का जवाब:

git fetch [email protected]:<THEIR USERNAME>/<REPO>.git <THEIR BRANCH>:<OUR NAME FOR BRANCH> 

आपको देता है:

Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

फिर (Przemek डी सलाह के बाद) का उपयोग करें

git fetch https://github.com/<THEIR USERNAME>/<REPO>.git <THEIR BRANCH>:<OUR NAME FOR BRANCH>

नहीं, आपको उन्हें रिमोट के रूप में जोड़ने की आवश्यकता नहीं है। यह हर समय करने के लिए परेशान और दर्द होगा।

उनके कामों को पकड़ना:

git fetch [email protected]:theirusername/reponame.git theirbranch:ournameforbranch

यह ournameforbranch नाम की एक स्थानीय शाखा बनाता है जो उनके लिए उनके theirbranch के समान ही था। प्रश्न उदाहरण के लिए, अंतिम तर्क foo:foo होगा foo:foo

नोट :ournameforbranch यदि किसी नाम को सोचने से आपकी शाखाओं में से किसी एक के साथ संघर्ष नहीं होता है तो :ournameforbranch भाग आगे छोड़ दिया जा सकता है। उस स्थिति में, FETCH_HEAD नामक एक संदर्भ उपलब्ध है। आप अपने git log FETCH_HEAD को देखने के लिए git log FETCH_HEAD कर सकते हैं, फिर चेरी को चुनिंदा चीजें जैसे चीजें चुनते हैं।

इसे वापस धक्का देना:

अक्सर, आप उनमें से कुछ को ठीक करना चाहते हैं और इसे वापस धक्का देना चाहते हैं। यह भी संभव है:

git fetch [email protected]:theirusername/reponame.git theirbranch
git checkout FETCH_HEAD

# fix fix fix

git push [email protected]:theirusername/reponame.git HEAD:theirbranch

यदि अलग-अलग राज्य में काम करना आपको चिंता करता है, तो हर तरह से हमारी शाखा के लिए शाखा बनाएं :ournameforbranch साथ ऊपर FETCH_HEAD और HEAD को ournameforbranch





git-remote