يتطلّب العمل باستخدام رمز Android Git، وهو نظام مفتوح المصدر للتحكّم في الإصدارات، وRepo، وهي أداة لإدارة المستودعات من تصميم Google تعمل على Git. للحصول على شرح حول العلاقة بين Repo وGit وروابط تؤدي إلى المستندات الداعمة لكل أداة، يُرجى الاطّلاع على أدوات التحكّم في المصدر.
Flow
يتضمّن تطوير تطبيقات Android سير العمل الأساسي التالي:
- ابدأ فرع موضوع جديدًا باستخدام
repo start. - عدِّل الملفات.
- تغيير المراحل باستخدام
git add - نفِّذ التغييرات باستخدام
git commit. - حمِّل التغييرات إلى خادم المراجعة باستخدام
repo upload.
المهام
يتضمّن العمل باستخدام Git وRepo في مستودعات رموز Android البرمجية تنفيذ المهام الشائعة التالية.
| الأمر | الوصف |
|---|---|
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 لتنزيل المصدر، يُرجى الاطّلاع على تنزيل المصدر ومرجع أوامر Repo.
مزامنة الأجهزة
لمزامنة الملفات لجميع المشاريع المتاحة، اتّبِع الخطوات التالية:
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
لعرض التعديلات التي تم تنفيذها (التعديلات المحدّدة التي تم وضع علامة عليها لتنفيذها)، تأكَّد من أنّك في دليل المشروع، ثم شغِّل git
diff مع الوسيطة cached:
cd ~/WORKING_DIRECTORY/PROJECTgit diff --cached
تنفيذ التغييرات
عملية الإيداع هي الوحدة الأساسية للتحكّم في المراجعات في Git، وهي تتألف من لقطة لبنية الدليل ومحتوى الملف للمشروع بأكمله. استخدِم الأمر التالي لإنشاء عملية إيداع في Git:
git commit
عندما يُطلب منك تقديم رسالة إتمام، قدِّم رسالة قصيرة (ولكن مفيدة) بشأن التغييرات التي تم إرسالها إلى AOSP. إذا لم تُضِف رسالة بشأن عملية الإيداع، ستتعذّر عملية الإيداع.
.تحميل التغييرات إلى Gerrit
حدِّث إلى أحدث نسخة معدَّلة، ثم حمِّل التغيير:
repo syncrepo upload
تعرض هذه الأوامر قائمة بالتغييرات التي أجريتها وتطلب منك اختيار الفروع التي تريد تحميلها إلى خادم المراجعة. إذا كان هناك فرع واحد فقط، سيظهر لك طلب بسيط y/n.
حلّ تعارضات المزامنة
إذا كان الأمر repo sync يعرض تعارضات في المزامنة:
- عرض الملفات التي لم يتم دمجها (رمز الحالة = U)
- عدِّل المناطق المتعارضة حسب الضرورة.
- انتقِل إلى دليل المشروع ذي الصلة. أضِف الملفات المتأثرة وقم بتثبيت التغييرات، ثم أعِد ضبط الأساس للتغييرات:
git add .git commitgit rebase --continue - بعد اكتمال عملية إعادة التأسيس، ابدأ المزامنة الكاملة مرة أخرى:
repo sync PROJECT0 PROJECT1 ... PROJECTN
تنظيف العملاء
بعد دمج التغييرات في Gerrit، عدِّل دليل العمل المحلي، ثم استخدِم
repo prune لإزالة فروع المواضيع القديمة بأمان:
repo syncrepo prune
حذف البرامج
بما أنّ جميع معلومات الحالة مخزّنة في جهازك، ما عليك سوى حذف الدليل من نظام الملفات:
rm -rf WORKING_DIRECTORY
يؤدي حذف عميل إلى حذف نهائي لأي تغييرات لم يتم تحميلها للمراجعة.