सोर्स कंट्रोल का वर्कफ़्लो

Android कोड के साथ काम करने के लिए Git (एक ओपन सोर्स) का इस्तेमाल करना ज़रूरी है वर्शन कंट्रोल सिस्टम) और Repo (Google की ओर से बनाया गया डेटा संग्रह स्थान) भी शामिल हैं जो Git के साथ काम करते हैं. सोर्स कंट्रोल टूल देखें के बीच संबंध की जानकारी पाने के लिए Repo और Git और हर टूल के लिए सहायक दस्तावेज़ के लिंक.

फ़्लो

Android डेवलपमेंट में ये बेसिक वर्कफ़्लो शामिल हैं:

  1. repo start का इस्तेमाल करके, विषय की नई ब्रांच शुरू करें.
  2. फ़ाइलों में बदलाव करें.
  3. git add का इस्तेमाल करके स्टेज बदला जाता है.
  4. git commit का इस्तेमाल करके बदलाव करें.
  5. repo upload का इस्तेमाल करके, समीक्षा सर्वर पर बदलाव अपलोड करें.

Tasks

Android कोड डेटा स्टोर करने की जगहों में Git और Repo के साथ काम करने में सामान्य कामों को पूरा करना.

निर्देश ब्यौरा
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 का इस्तेमाल करके, किसी विषय की ब्रांच शुरू करने के लिए, प्रोजेक्ट पर जाएं और यह काम करें:

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 न सिर्फ़ Git रिपॉज़िटरी; इसका इस्तेमाल फ़ाइल में बदलाव करने और मिटाता है.

क्लाइंट की स्थिति देखना

फ़ाइलों की स्थिति को सूची में जोड़ने के लिए:

repo status

ऐसे बदलाव देखने के लिए जिनकी पुष्टि नहीं की गई है:

repo diff

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

cd ~/WORKING_DIRECTORY/PROJECT
git diff --cached

बदलाव लागू करना

commit, Git में रिविज़न कंट्रोल की बुनियादी इकाई है. इसमें यह शामिल होता है पूरे प्रोजेक्ट के लिए डायरेक्ट्री के स्ट्रक्चर और फ़ाइल के कॉन्टेंट का स्नैपशॉट. Git में कमिट बनाने के लिए इस निर्देश का इस्तेमाल करें:

git commit

कमिट मैसेज के बारे में पूछे जाने पर, एओएसपी को सबमिट किए गए बदलाव. अगर आपने फ़ाइल के लिए जो मैसेज सेव नहीं किया है वह सही नहीं है.

Gerrit में बदलाव अपलोड किए जा रहे हैं

सबसे नए वर्शन पर अपडेट करें, फिर बदलाव अपलोड करें:

repo sync
repo upload

ये निर्देश आपके किए गए बदलावों की सूची दिखाते हैं और आपको रिव्यू सर्वर पर अपलोड करने के लिए ब्रांच चुनें. यदि ब्रांच में, आपको एक सामान्य y/n प्रॉम्प्ट दिखता है.

सिंक करने से जुड़े विवादों को हल करना

अगर repo sync निर्देश, सिंक करने के विरोध दिखाता है, तो:

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

क्लाइंट का स्टोरेज खाली किया जा रहा है

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

repo sync
repo prune

क्लाइंट की जानकारी मिटाई जा रही है

आपके क्लाइंट में राज्य की सारी जानकारी सेव होती है, इसलिए आपको सिर्फ़ अपने फ़ाइल सिस्टम से डायरेक्ट्री मिटाएं:

rm -rf WORKING_DIRECTORY

किसी क्लाइंट को मिटाने से, वे सभी बदलाव हमेशा के लिए मिट जाते हैं जो आपने नहीं किए हैं समीक्षा के लिए अपलोड किया गया.