يتطلّب العمل على رمز Android استخدام Git (وهو نظام مفتوح المصدر للتحكّم في الإصدارات) وRepo (أداة إدارة مستودع أنشأتها Google وتعمل على Git). اطّلِع على أدوات التحكّم في المصدر للحصول على شرح للعلاقة بين Repo وGit والروابط المؤدية إلى المستندات الداعمة لكل أداة.
تدفق
يتضمن تطوير تطبيقات Android سير العمل الأساسي التالي:
- ابدأ فرع موضوع جديد باستخدام
repo start
. - عدِّل الملفات.
- يمكنك تغيير المرحلة باستخدام
git add
. - يمكنك تأكيد التغييرات باستخدام
git commit
. - حمِّل التغييرات إلى خادم المراجعة باستخدام
repo upload
.
مهام Google
يتضمن العمل مع 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 syncPROJECT0 PROJECT1 ... PROJECTN
إنشاء فروع المواضيع
ابدأ فرع موضوع في بيئة العمل المحلية كلما بدأت في إجراء تغيير، مثلما يحدث عند بدء العمل على خطأ أو ميزة جديدة. فرع الموضوع ليس نسخة من الملفات الأصلية، بل هو مؤشر إلى عملية إرسال معيّنة، ما يجعل إنشاء الفروع المحلية والتبديل بينها عملية سهلة. باستخدام الفروع، يمكنك عزل جانب واحد من عملك عن غيره. للحصول على مقالة مثيرة للاهتمام حول استخدام تفرعات topics، يُرجى الرجوع إلى مقالة فصل تفرعات topics.
لبدء فرع موضوع باستخدام Repo، انتقِل إلى المشروع ونفِّذ:
repo startBRANCH_NAME .
تمثّل الفترة اللاحقة ( .
) المشروع في دليل العمل
الحالي.
للتأكّد من إنشاء الفرع الجديد:
repo status .
استخدام فروع المواضيع
لإسناد الفرع إلى مشروع معيّن:
repo startBRANCH_NAME PROJECT_NAME
للحصول على قائمة بجميع المشاريع، يُرجى الرجوع إلى android.googlesource.com. إذا سبق لك الانتقال إلى دليل المشروع، ما عليك سوى استخدام نقطة ل represent the current project.
للتبديل إلى فرع آخر في بيئة العمل المحلية:
git checkoutBRANCH_NAME
لعرض قائمة بالفروع الحالية:
git branch
أو
repo branches
يعرض كلا الأمرَين قائمة الفروع الحالية مع اسم الفرع الحالي مسبوقًا بعلامة النجمة (*).
مرحلة وضع الملفات في انتظار المراجعة
يلاحظ Git التغييرات التي تجريها في المشروع تلقائيًا، ولكنه لا يتتبّعها. لطلب الحفاظ على تغييراتك من Git، عليك وضع علامة على تلك التغييرات أو وضعها في المرحلة لتضمينها في عملية إرسال.
لتنفيذ التغييرات على مراحل:
git add
يقبل هذا الأمر وسيطات للملفات أو الأدلة ضمن دليل
المشروع. على الرغم من الاسم، لا تضيف أداة git add
الملفات إلى
مستودع Git فقط، بل يمكن استخدامها أيضًا لتعديل الملفات و
حذفها.
عرض حالة العميل
لعرض حالة الملفات:
repo status
للاطّلاع على التعديلات غير المُرسَلة (التعديلات المحلية التي لم يتم وضع علامة عليها لإرسالها):
repo diff
للاطّلاع على التعديلات التي تمّ إجراؤها (التعديلات التي تم وضع علامة عليها لملفه
الإرسال)، تأكَّد من أنّك في دليل المشروع ثمّ نفِّذ git
diff
مع الوسيطة cached
:
cd
~/WORKING_DIRECTORY/PROJECT git diff --cached
تأكيد التغييرات
التسجيل هو الوحدة الأساسية للتحكّم في المراجعات في Git، ويتكوّن من لقطة شاشة لبنية الدليل ومحتوى الملفات للمشروع بأكمله. استخدِم هذا الأمر لإنشاء عملية إرسال في Git:
git commit
عندما يُطلب منك إدخال رسالة الإضافة، أدخِل رسالة قصيرة (ولكن مفيدة) بشأن التغييرات التي تم إرسالها إلى AOSP. في حال عدم إضافة رسالة التزام، ستتعذّر عملية الإضافة.
.تحميل التغييرات إلى Gerrit
عليك إجراء التعديلات اللازمة على أحدث نسخة من المستند، ثم تحميل التغييرات:
repo sync
repo upload
تعرض هذه الأوامر قائمة بالتغييرات التي أجريتها وتطالبك بتحديد الفروع المطلوب تحميلها إلى خادم المراجعة. إذا كان هناك فرع واحد فقط،
ستظهر لك رسالة y/n
بسيطة.
حلّ تعارضات المزامنة
إذا كان الأمر repo sync
يعرض تعارضات في المزامنة:
- عرض الملفات التي لم يتم دمجها (رمز الحالة = U)
- عدِّل المناطق المتضاربة حسب الحاجة.
- انتقِل إلى دليل المشروع ذي الصلة. أضِف الملفات المتأثرة
واضفِها إلى الإصدار، ثم أعِد ربط التغييرات:
git add .
git commit
git rebase --continue
- بعد اكتمال إعادة الربط، ابدأ عملية المزامنة بالكامل مرة أخرى:
repo sync
PROJECT0 PROJECT1 ... PROJECTN
تنظيف العملاء
بعد دمج التغييرات في Gerrit، عدِّل دليل العمل على الجهاز، ثم استخدِم
repo prune
لإزالة فروع المواضيع القديمة بأمان:
repo sync
repo prune
حذف العملاء
بما أنّه يتم تخزين جميع معلومات الحالة في العميل، ما عليك سوى حذف الدليل من نظام الملفات:
rm -rfWORKING_DIRECTORY
يؤدي حذف عميل إلى حذف أي تغييرات نهائيًا لم يتم تحميلها للمراجعة.