रेपो कमांड संदर्भ

रेपो कई रिपॉजिटरी में काम को सरल बनाकर Git का पूरक है। देखें स्रोत नियंत्रण उपकरण रेपो और Git के बीच के रिश्ते की एक विवरण के लिए। रेपो के बारे में अधिक जानकारी के लिए, रेपो README

रेपो उपयोग निम्नलिखित रूप लेता है:

repo command options

वैकल्पिक तत्व कोष्ठक [ ] में दिखाए गए हैं। उदाहरण के लिए, कई आदेशों लेने project-list एक तर्क के रूप। आप निर्दिष्ट कर सकते project-list या नामों की सूची परियोजनाओं के लिए स्थानीय स्रोत निर्देशिका के लिए रास्तों की एक सूची के रूप में:

repo sync [project0 project1 ... projectn]
repo sync [/path/to/project0 ... /path/to/projectn]

मदद

यह पृष्ठ केवल प्रमुख विकल्पों पर प्रकाश डालता है। पूर्ण विवरण के लिए कमांड लाइन सहायता देखें। जब रेपो स्थापित हो जाता है, तो आप सभी कमांड के सारांश के साथ शुरू होने वाले नवीनतम दस्तावेज को चलाकर पा सकते हैं:

repo help

आप किसी रेपो ट्री के भीतर इसे चलाकर किसी भी कमांड के बारे में विस्तृत जानकारी देख सकते हैं:

repo help command

उदाहरण के लिए, निम्न आदेश विवरण और के लिए विकल्पों की सूची पैदावार init रेपो के तर्क है, जो मौजूदा निर्देशिका में रेपो initializes। (देखें init जानकारी के लिए।)

repo help init

या केवल उपलब्ध विकल्पों की सूची देखने के लिए, दौड़ें:

repo command --help
उदाहरण के लिए:
repo init --help

इस में

repo init -u url [options]

वर्तमान निर्देशिका में रेपो स्थापित करता है। यह एक बनाता है .repo/ रेपो स्रोत कोड के लिए Git संग्रह और मानक एंड्रॉयड प्रकट फाइलों के साथ निर्देशिका।

विकल्प:

  • -u : एक URL जिससे एक प्रकट भंडार को पुनः प्राप्त करने का उल्लेख करें। आम प्रकट में पाया जाता है https://android.googlesource.com/platform/manifest
  • -m : भंडार के भीतर एक मैनिफ़ेस्ट फ़ाइल का चयन करें। कोई प्रकट नाम का चयन किया जाता है, तो डिफ़ॉल्ट है default.xml
  • -b : एक संशोधन है, यह है कि, एक विशेष निर्दिष्ट manifest-branch

नोट: सभी शेष रेपो आदेशों के लिए, वर्तमान कार्यशील निर्देशिका या तो की पेरेंट निर्देशिका होना चाहिए .repo/ या मूल निर्देशिका की एक उपनिर्देशिका।

साथ - साथ करना

repo sync [project-list]

डाउनलोड नए परिवर्तन और अपने स्थानीय वातावरण में अद्यतन काम कर फ़ाइलें, अनिवार्य रूप से पूरा git fetch सभी Git संग्रह भर में। आप चलाते हैं repo sync तर्क के बिना, यह सभी परियोजनाओं के लिए फ़ाइलों को सिंक्रनाइज़ करता है।

जब आप चलाने repo sync , तो ऐसा होता है:

  • परियोजना सिंक्रनाइज़ कभी नहीं किया गया है, तो repo sync के बराबर है git clone । दूरस्थ रिपॉजिटरी की सभी शाखाओं को स्थानीय प्रोजेक्ट निर्देशिका में कॉपी किया जाता है।

  • परियोजना से पहले सिंक्रनाइज़ कर दिया गया है, तो repo sync के बराबर है:

    git remote update
    git rebase origin/branch
    

    जहां branch स्थानीय परियोजना निर्देशिका में वर्तमान में जांचा-आउट शाखा है। यदि स्थानीय शाखा दूरस्थ रिपॉजिटरी में किसी शाखा को ट्रैक नहीं कर रही है, तो प्रोजेक्ट के लिए कोई सिंक्रनाइज़ेशन नहीं होता है।

  • Git मर्ज संघर्ष में rebase आपरेशन के परिणाम हैं, (उदाहरण के लिए, के लिए सामान्य Git आदेशों का उपयोग git rebase --continue विवादों को सुलझाने के)।

के सफल चलाने के बाद repo sync , निर्दिष्ट परियोजनाओं में कोड अप टू डेट है और दूरदराज के भंडार में कोड के साथ समन्वयित।

यहाँ प्रमुख विकल्प हैं। देखें repo help sync और अधिक के लिए:

  • -c : सर्वर से केवल वर्तमान प्रकट शाखा लायें।

  • -d : स्विच निर्दिष्ट परियोजनाओं प्रकट संशोधन करने के लिए वापस। यदि प्रोजेक्ट वर्तमान में किसी विषय शाखा पर है, तो यह सहायक होता है, लेकिन मैनिफेस्ट संशोधन अस्थायी रूप से आवश्यक है।

  • -f : भले ही एक परियोजना सिंक करने में विफल रहता अन्य परियोजनाओं को सिंक करना के साथ आगे बढ़ें।

  • -j threadcount : स्प्लिट तेजी से पूरा करने के लिए सूत्र में सिंक। सुनिश्चित करें कि आप अपनी मशीन पर हावी न हों - कुछ सीपीयू को अन्य कार्यों के लिए आरक्षित छोड़ दें। उपलब्ध सीपीयू, पहली बार चलाने की संख्या देखने के लिए: nproc --all

  • -q : स्थिति संदेश का दमन करके चुपचाप चलाएँ।

  • -s : सिंक एक परिचित अच्छे निर्माण के रूप में द्वारा निर्दिष्ट करने के लिए manifest-server वर्तमान प्रकट में तत्व।

डालना

repo upload [project-list]

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

चयनित शाखाओं पर सभी कमिट्स को एक HTTPS कनेक्शन पर गेरिट को प्रेषित किया जाता है। अपलोड प्राधिकरण को सक्षम करने के लिए आपको एक HTTPS पासवर्ड कॉन्फ़िगर करना होगा। पर जाएं पासवर्ड जेनरेटर HTTPS पर उपयोग करने के लिए एक नया उपयोगकर्ता नाम / पासवर्ड युग्म उत्पन्न करने के लिए।

जब गेरिट अपने सर्वर पर ऑब्जेक्ट डेटा प्राप्त करता है, तो यह प्रत्येक कमिट को एक बदलाव में बदल देता है ताकि समीक्षक एक विशिष्ट कमिट पर टिप्पणी कर सकें। एक एकल में कई चौकी करता गठबंधन करने के लिए प्रतिबद्ध है, का उपयोग git rebase -i इससे पहले कि आप अपलोड चलाते हैं।

आप चलाते हैं repo upload तर्क के बिना, इसे अपलोड करने में परिवर्तन के लिए परियोजनाओं के सभी खोज करता है।

परिवर्तन संपादन के बाद वे अपलोड किया गया है करने के लिए, जैसे उपकरण भी git rebase -i या git commit --amend अपने स्थानीय प्रतिबद्ध अद्यतन करने के लिए। आपके संपादन पूर्ण होने के बाद:

  • सत्यापित करें कि अद्यतन शाखा वर्तमान में चेक आउट की गई शाखा है।
  • श्रृंखला में प्रत्येक प्रतिबद्धता के लिए, कोष्ठक के अंदर गेरिट परिवर्तन आईडी दर्ज करें:
    # Replacing from branch foo
    [ 3021 ] 35f2596c Refactor part of GetUploadableBranches to lookup one specific...
    [ 2829 ] ec18b4ba Update proto client to support patch set replacments
    # Insert change numbers in the brackets to add a new patch set.
    # To create a new change record, leave the brackets empty.
    

अपलोड पूर्ण होने के बाद, परिवर्तनों में एक अतिरिक्त पैच सेट होता है।

आप अपलोड करने के लिए केवल वर्तमान में बाहर Git शाखा जाँच चाहते हैं, ध्वज का उपयोग --current-branch (या --cbr छोटे के लिए)।

अंतर

repo diff [project-list]

शो के लिए प्रतिबद्ध है और काम कर पेड़ का उपयोग कर के बीच बकाया परिवर्तन git diff

डाउनलोड

repo download target change

समीक्षा प्रणाली से निर्दिष्ट परिवर्तन को डाउनलोड करता है और इसे आपके प्रोजेक्ट की स्थानीय कार्यशील निर्देशिका में उपलब्ध कराता है।

उदाहरण के लिए, डाउनलोड करने के लिए परिवर्तन 23823 अपने मंच / निर्माण निर्देशिका में:

repo download platform/build 23823

रनिंग repo sync हटा देगा किसी भी प्रतिबद्ध लाए साथ repo download । या आप का उपयोग कर दूरस्थ शाखा की जांच कर सकते git checkout m/master

नोट: दुनिया भर में सभी सर्वरों के लिए प्रतिकृति देरी कर रहे हैं, इसलिए वहाँ जब एक परिवर्तन में वेब पर दिखाई दे रहा है के बीच एक मामूली मिरर अंतराल है Gerrit और जब repo download सभी उपयोगकर्ताओं के लिए परिवर्तन पा सकते हैं।

सबके लिए

repo forall [project-list] -c command

प्रत्येक प्रोजेक्ट में दिए गए शेल कमांड को निष्पादित करता है। निम्न अतिरिक्त वातावरण चर द्वारा उपलब्ध कराया जाता है repo forall :

  • REPO_PROJECT परियोजना के अद्वितीय नाम पर सेट है।

  • REPO_PATH ग्राहक की जड़ तक मार्ग सापेक्ष है।

  • REPO_REMOTE प्रकट से दूरस्थ सिस्टम का नाम है।

  • REPO_LREV प्रकट से संशोधन, एक स्थानीय ट्रैकिंग शाखा में अनुवाद का नाम है। इसका उपयोग करें यदि आपको स्थानीय रूप से निष्पादित गिट कमांड में मेनिफेस्ट संशोधन पास करने की आवश्यकता है।

  • REPO_RREV प्रकट से संशोधन के नाम पर, प्रकट में लिखा बिल्कुल के रूप में है।

विकल्प:

  • -c : कमान और तर्क निष्पादित करने के लिए। आदेश के माध्यम से मूल्यांकन किया जाता है /bin/sh और यह बाद किसी भी तर्क खोल स्थितीय पैरामीटर के रूप में के माध्यम से पारित कर रहे हैं।

  • -p : निर्दिष्ट कमांड के उत्पादन से पहले परियोजना दिखाएँ हेडर। यह पाइप को कमांड के स्टड, स्टडआउट और स्टर स्ट्रीम से बांधकर और सभी आउटपुट को एक सतत स्ट्रीम में पाइप करके प्राप्त किया जाता है जो एक पेजर सत्र में प्रदर्शित होता है।

  • -v : संदेशों दिखाएँ आदेश stderr करने के लिए लिखता है।

छटना

repo prune [project-list]

पहले से मर्ज किए गए विषयों को Prunes (हटाता है)।

प्रारंभ

repo start
branch-name [project-list]

मैनिफेस्ट में निर्दिष्ट संशोधन से शुरू होकर, विकास के लिए एक नई शाखा शुरू करता है।

BRANCH_NAME तर्क परिवर्तन आप परियोजनाओं के लिए बनाने की कोशिश कर रहे हैं का एक संक्षिप्त विवरण प्रदान करता है। यदि आप नहीं जानते हैं, तो नाम के उपयोग पर विचार default

project-list तर्क निर्दिष्ट करता है जो परियोजनाओं इस विषय शाखा में भाग लेते हैं।

नोट: (।) एक अवधि वर्तमान कार्यशील निर्देशिका में परियोजना के लिए आशुलिपि है।

स्थिति

repo status [project-list]

काम कर रहे पेड़ की तुलना स्टेजिंग एरिया (इंडेक्स) से करता है और निर्दिष्ट प्रत्येक प्रोजेक्ट में इस ब्रांच (HEAD) पर सबसे हालिया कमिटमेंट करता है। प्रत्येक फ़ाइल के लिए एक सारांश पंक्ति प्रदर्शित करता है जहाँ इन तीन राज्यों के बीच अंतर होता है।

सिर्फ वर्तमान शाखा की स्थिति, चलाने को देखने के लिए repo status . . स्थिति की जानकारी परियोजना द्वारा सूचीबद्ध है। प्रोजेक्ट में प्रत्येक फ़ाइल के लिए, दो-अक्षर वाले कोड का उपयोग किया जाता है।

पहले कॉलम में, एक अपरकेस अक्षर इंगित करता है कि स्टेजिंग क्षेत्र अंतिम प्रतिबद्ध स्थिति से कैसे भिन्न होता है।

पत्र अर्थ विवरण
- कोई परिवर्तन नहीं होता है हेड और इंडेक्स में समान
जोड़ा हेड में नहीं, इंडेक्स में
एम संशोधित HEAD में, अनुक्रमणिका में संशोधित
डी हटाए गए HEAD में, इंडेक्स में नहीं
आर नाम बदलकर HEAD में नहीं, अनुक्रमणिका में पथ बदल गया
सी कॉपी किया गया HEAD में नहीं, इंडेक्स में दूसरे से कॉपी किया गया
टी मोड बदल गया HEAD और अनुक्रमणिका में समान सामग्री, मोड बदल गया
यू मर्ज ना किए गए सिर और सूचकांक के बीच संघर्ष; संकल्प आवश्यक

दूसरे कॉलम में, एक लोअरकेस अक्षर इंगित करता है कि कार्यशील निर्देशिका सूचकांक से कैसे भिन्न होती है।

पत्र अर्थ विवरण
- नया/अज्ञात इंडेक्स में नहीं, वर्क ट्री में
एम संशोधित इंडेक्स में, वर्क ट्री में, संशोधित
डी हटाए गए इंडेक्स में, वर्क ट्री में नहीं

रेपो त्रुटियों को संभालना

git commit -a # Commit local changes first so they aren't lost.
repo start branch-name # Start the branch
git reset --hard HEAD@{1} # And reset the branch so that it matches the commit before repo start
repo upload .

त्रुटि repo: error: no branches ready for upload दिखाई देता है कमांड जब repo start सत्र के प्रारंभ में नहीं चला था। पुनर्प्राप्त करने के लिए, आप प्रतिबद्ध आईडी की जांच कर सकते हैं, एक नई शाखा शुरू कर सकते हैं और फिर इसे मर्ज कर सकते हैं।