[git] एक मौजूदा गिट शाखा को रिमोट शाखा ट्रैक करें?


Answers

आप निम्नलिखित कर सकते हैं (माना जाता है कि आप मास्टर पर चेक आउट हैं और रिमोट ब्रांच मास्टर को धक्का देना चाहते हैं):

यदि आपके पास पहले से नहीं है तो 'रिमोट' सेट अप करें

git remote add origin ssh://...

अब ट्रैक करने के लिए मास्टर को कॉन्फ़िगर करें:

git config branch.master.remote origin
git config branch.master.merge refs/heads/master

और धक्का:

git push origin master
Question

मुझे पता है कि रिमोट शाखाओं को ट्रैक करने वाली एक नई शाखा कैसे बनाई जाए, लेकिन मैं एक मौजूदा शाखा को रिमोट शाखा कैसे ट्रैक करूं?

मुझे पता है कि मैं सिर्फ .git/config फ़ाइल को संपादित कर सकता हूं, लेकिन ऐसा लगता है कि एक आसान तरीका होना चाहिए।




मेरा मानना ​​है कि गिट 1.5.x के आरंभ में आप एक स्थानीय शाखा $BRANCH दूरस्थ शाखा origin/$BRANCH शाखा ट्रैक कर सकते हैं।

यह देखते हुए कि $BRANCH और origin/$BRANCH मौजूद है, और आपने वर्तमान में $BRANCH जांच नहीं की है (यदि आपके पास है तो स्विच करें), करें:

git branch -f --track $BRANCH origin/$BRANCH

यह एक ट्रैकिंग शाखा के रूप में $BRANCH पुन: प्रयास करता है। पहले से मौजूद $BRANCH बावजूद सृजन को मजबूर करता है। --track सामान्य डिफ़ॉल्ट डिफ़ॉल्ट होने पर --track वैकल्पिक है (यानी, गिट-कॉन्फ़िगर पैरामीटर branch.autosetupmerge सत्य है)।

नोट, यदि origin/$BRANCH अभी तक मौजूद नहीं है, तो आप इसे अपने स्थानीय $BRANCH को रिमोट रिपोजिटरी में दबाकर बना सकते हैं:

git push origin $BRANCH

स्थानीय शाखा को एक ट्रैकिंग शाखा में बढ़ावा देने के लिए पिछले आदेश का पालन किया गया।




यहां, github और git version 2.1.4 का उपयोग करके, बस करें:

$ git clone git@github.com:user/repo.git

और रिमोट इटेलसेफ द्वारा आते हैं, भले ही स्थानीय रूप से लिंक न हों:

$ git remote show origin

* remote origin
  Fetch URL: git@github.com:user/repo.git
  Push  URL: git@github.com:user/repo.git
  HEAD branch: master
  Remote branches:
    develop tracked         <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    master  tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)

लेकिन बेशक, अभी भी कोई स्थानीय शाखा नहीं है:

$ git branch
* master                  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

देख? अब अगर आप सिर्फ डेवेलप चेकआउट करते हैं, तो यह स्वचालित रूप से जादू करेगा:

$ git checkout develop
Branch develop set up to track remote branch develop from origin.
Switched to a new branch 'develop'

इतना आसान!

सारांश। बस यह 2 आदेश चलाएं:

$ git clone git@github.com:user/repo.git
$ git checkout develop



मैं निम्नलिखित कमांड का उपयोग करता हूं (मान लीजिए कि आप शाखा का नाम "शाखा-नाम" है):

$ git branch --set-upstream-to=branch-name origin/branch-name



बहुत कम में

git branch --set-upstream yourLocalBranchName origin/develop

यह आपके yourLocalBranchName नामक दूरस्थ शाखा को ट्रैक करेगा।




या बस द्वारा:

शाखा में स्विच करें यदि आप पहले से इसमें नहीं हैं:

[za]$ git checkout branch_name

रन

[za]$ git branch --set-upstream origin branch_name
Branch origin set up to track local branch brnach_name by rebasing.

और आप इसके लिए तैयार हैं:

 [za]$ git push origin branch_name

आप यह देखकर कॉन्फ़िगरेशन फ़ाइल पर एक नज़र डाल सकते हैं कि क्या चल रहा है ट्रैकिंग:

 [za]$ git config -e



नई शाखा बनाने के लिए, हम निम्नलिखित कमांड का उपयोग कर सकते हैं

 git checkout --track -b example origin/example 
रिमोट के बीच लिंक बनाने के लिए पहले से बनाई गई शाखा के लिए उस शाखा से नीचे कमांड का उपयोग करें

 git branch -u origin/remote-branch-name




आपको git_remote_branch टूल उपयोगी हो सकता है। यह रिमोट शाखाओं को बनाने, प्रकाशित करने, हटाने, ट्रैकिंग और नाम बदलने के लिए सरल आदेश प्रदान करता है। एक अच्छी सुविधा यह है कि आप एक grb कमांड से यह बताने के लिए कह सकते हैं कि यह किस गिट कमांड को निष्पादित करेगा।

grb explain create my_branch github
# git_remote_branch version 0.3.0

# List of operations to do to create a new remote branch and track it locally:
git push github master:refs/heads/my_branch
git fetch github
git branch --track my_branch github/my_branch
git checkout my_branch



सुनिश्चित करें कि आप चलाते हैं:

git config push.default tracking

मुसीबत मुक्त करने में सक्षम होने के लिए




Links