Google is committed to advancing racial equity for Black communities. See how.
This page was translated by the Cloud Translation API.
Switch to English

स्रोत नियंत्रण वर्कफ़्लो

एंड्रॉइड कोड के साथ काम करने के लिए Git (एक ओपन-सोर्स वर्जन कंट्रोल सिस्टम) और रेपो (एक Google द्वारा निर्मित रिपॉजिटरी मैनेजमेंट टूल, जो Git के शीर्ष पर चलता है) का उपयोग करने की आवश्यकता होती है। रेपो और गिट के बीच संबंध की व्याख्या के लिए स्रोत नियंत्रण उपकरण देखें और प्रत्येक उपकरण के लिए सहायक प्रलेखन के लिए लिंक।

बहे

Android के विकास में निम्नलिखित मूल वर्कफ़्लो शामिल हैं:

  1. repo start का उपयोग करके एक नई विषय शाखा repo start
  2. फ़ाइलों को संपादित करें।
  3. git add का उपयोग करके स्टेज परिवर्तन।
  4. git commit का उपयोग करके परिवर्तन git commit
  5. repo upload का उपयोग करके समीक्षा सर्वर में परिवर्तन repo upload

कार्य

एंड्रॉइड कोड रिपॉजिटरी में Git और रेपो के साथ काम करने में निम्नलिखित सामान्य कार्य शामिल हैं।

आदेश विवरण
repo init एक नया क्लाइंट शुरू करता है।
repo sync क्लाइंट को रिपॉजिटरी में सिंक करता है।
repo start एक नई शाखा शुरू करता है।
repo status वर्तमान शाखा की स्थिति को दर्शाता है।
repo upload समीक्षा सर्वर में परिवर्तन अपलोड करता है।
git add फाइलें मंगाता है।
git commit चरणबद्ध फ़ाइलों को भेजता है।
git branch वर्तमान शाखाओं को दर्शाता है।
git branch [branch] एक नई विषय शाखा बनाता है।
git checkout [branch] HEAD को निर्दिष्ट शाखा में स्विच करता है।
git merge [branch] वर्तमान शाखा में [branch] विलय करता है।
git diff अस्थिर परिवर्तनों के विस्तार को दिखाता है।
git diff --cached मंचन के परिवर्तनों को दर्शाता है।
git log वर्तमान शाखा के इतिहास को दर्शाता है।
git log m/[codeline].. उन कमिट्स को दिखाता है जिन्हें धक्का नहीं दिया गया है।

स्रोत डाउनलोड करने के लिए रेपो का उपयोग करने के बारे में जानकारी के लिए, स्रोत और रेपो कमांड संदर्भ डाउनलोड करना देखें।

ग्राहकों को सिंक्रोनाइज़ करना

सभी उपलब्ध परियोजनाओं के लिए फ़ाइलों को सिंक्रनाइज़ करने के लिए:

repo sync

चयनित परियोजनाओं के लिए फ़ाइलों को सिंक्रनाइज़ करने के लिए:

repo sync PROJECT0 PROJECT1 ... PROJECTN

विषय शाखाएँ बनाना

जब भी आप कोई परिवर्तन शुरू करते हैं, जैसे कि आप बग या नई सुविधा पर काम करना शुरू करते हैं, तो अपने स्थानीय कार्य परिवेश में एक विषय शाखा शुरू करें। एक विषय शाखा मूल फ़ाइलों की एक प्रति नहीं है; यह एक विशेष प्रतिबद्ध के लिए एक संकेतक है, जो स्थानीय शाखाओं का निर्माण करता है और उनके बीच एक हल्का संचालन करता है। शाखाओं का उपयोग करके, आप अपने काम के एक पहलू को दूसरों से अलग कर सकते हैं। विषय शाखाओं का उपयोग करने के बारे में एक दिलचस्प लेख के लिए, विषय शाखाओं को अलग करना देखें।

रेपो का उपयोग करके विषय शाखा शुरू करने के लिए, प्रोजेक्ट पर जाएं और चलाएं:

repo start BRANCH_NAME .

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

यह सत्यापित करने के लिए कि नई शाखा बनाई गई थी:

repo status .

विषय शाखाओं का उपयोग करना

एक विशेष परियोजना के लिए शाखा आवंटित करने के लिए:

repo start BRANCH_NAME PROJECT_NAME

सभी परियोजनाओं की सूची के लिए, android.googlesource.com देखें। यदि आपने पहले ही परियोजना निर्देशिका में नेविगेट कर लिया है, तो वर्तमान परियोजना का प्रतिनिधित्व करने के लिए एक अवधि का उपयोग करें।

अपने स्थानीय कार्य परिवेश में किसी अन्य शाखा में जाने के लिए:

git checkout BRANCH_NAME

मौजूदा शाखाओं की सूची देखने के लिए:

git branch

या

repo branches

दोनों आदेश मौजूदा शाखाओं की सूची को तारांकन चिह्न (*) से पहले की वर्तमान शाखा के नाम से लौटाते हैं।

फाइलों का मंचन

डिफ़ॉल्ट रूप से, Git नोटिस, लेकिन उन परिवर्तनों को ट्रैक नहीं करता जो आप किसी प्रोजेक्ट में करते हैं। अपने परिवर्तनों को संरक्षित करने के लिए Git को बताने के लिए, आपको उन बदलावों को चिह्नित करना या चरणबद्ध करना चाहिए जो किसी कमिट में शामिल करने के लिए हैं।

परिवर्तनों को चरणबद्ध करने के लिए:

git add

यह आदेश प्रोजेक्ट डायरेक्टरी के भीतर फाइलों या निर्देशिकाओं के लिए तर्क स्वीकार करता है। नाम के बावजूद, git add सिर्फ गिट रिपॉजिटरी में फाइल नहीं जोड़ता है; इसका उपयोग फ़ाइल संशोधनों और विलोपन को चरणबद्ध करने के लिए भी किया जा सकता है।

ग्राहक की स्थिति देखना

फ़ाइलों की स्थिति को सूचीबद्ध करने के लिए:

repo status

अन-एडिट किए गए संपादन देखने के लिए (स्थानीय संपादन जो कमिट के लिए चिह्नित नहीं हैं):

repo diff

प्रतिबद्ध संपादन देखने के लिए (स्थित संपादन जो प्रतिबद्ध के लिए चिह्नित हैं), सुनिश्चित करें कि आप प्रोजेक्ट डायरेक्टरी में हैं, फिर cached तर्क के साथ git diff चलाएं:

cd ~/WORKING_DIRECTORY/PROJECT
git diff --cached

परिवर्तन कर रहे हैं

एक प्रतिबद्धता Git में संशोधन नियंत्रण की मूल इकाई है और इसमें संपूर्ण परियोजना के लिए निर्देशिका संरचना और फ़ाइल सामग्री का एक स्नैपशॉट शामिल है। Git में एक कमिट बनाने के लिए:

git commit

जब एक प्रतिबद्ध संदेश के लिए कहा जाता है, तो एओएसपी को प्रस्तुत परिवर्तनों के लिए एक संक्षिप्त (लेकिन सहायक) संदेश प्रदान करें। यदि आप एक प्रतिबद्ध संदेश नहीं जोड़ते हैं, तो प्रतिबद्ध गर्भपात करें।

Gerrit में परिवर्तन अपलोड करना

नवीनतम संशोधन में अपडेट करें, फिर परिवर्तन अपलोड करें:

repo sync
repo upload

ये आदेश आपके द्वारा किए गए परिवर्तनों की सूची लौटाते हैं और आपको समीक्षा सर्वर पर अपलोड करने के लिए शाखाओं का चयन करने के लिए संकेत देते हैं। यदि केवल एक शाखा है, तो आप एक साधारण y/n संकेत देखते हैं।

सिंक विरोधों को हल करना

यदि repo sync कमांड देता है तो सिंक टकराव होता है:

  1. फ़ाइलों को देखें जो अनमैरिड हैं (स्थिति कोड = यू)।
  2. आवश्यकतानुसार संघर्ष क्षेत्रों को संपादित करें।
  3. संबंधित प्रोजेक्ट निर्देशिका में बदलें। प्रभावित फ़ाइलों को जोड़ें और प्रतिबद्ध करें, फिर परिवर्तनों को फिर से भरें:
    git add .
    git commit
    git rebase --continue
    
  4. रिबेस पूरा होने के बाद, पूरे सिंक को फिर से शुरू करें:
    repo sync PROJECT0 PROJECT1 ... PROJECTN
    

ग्राहकों की सफाई

गेरिट में परिवर्तन को मर्ज करने के बाद, अपने स्थानीय कामकाजी निर्देशिका को अपडेट करें, फिर बासी विषय शाखाओं को सुरक्षित रूप से हटाने के लिए repo prune का उपयोग करें:

repo sync
repo prune

ग्राहकों को हटाना

क्योंकि सभी राज्य की जानकारी आपके क्लाइंट में संग्रहीत है, आपको केवल अपने फाइल सिस्टम से निर्देशिका को हटाने की आवश्यकता है:

rm -rf WORKING_DIRECTORY

ग्राहक को हटाना स्थायी रूप से आपके द्वारा समीक्षा के लिए अपलोड नहीं किए गए परिवर्तनों को हटा देता है