يتطلب العمل باستخدام كود Android استخدام Git (نظام تحكم في إصدار مفتوح المصدر) و Repo (أداة لإدارة المستودعات مبنية من Google وتعمل على قمة Git). راجع أدوات التحكم في المصدر للحصول على شرح للعلاقة بين Repo و Git وروابط للوثائق الداعمة لكل أداة.
تدفق
يتضمن تطوير 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/PROJECT
git diff --cached
تنفيذ التغييرات
الالتزام هو الوحدة الأساسية للتحكم في المراجعة في Git ويتكون من لقطة من بنية الدليل ومحتويات الملف للمشروع بأكمله. استخدم هذا الأمر لإنشاء التزام في Git:
git commit
عندما يُطلب منك رسالة الالتزام ، قدم رسالة قصيرة (لكنها مفيدة) للتغييرات المرسلة إلى AOSP. إذا لم تقم بإضافة رسالة تنفيذ ، يفشل الالتزام.
تحميل التغييرات على جيريت
قم بالتحديث لآخر نسخة ، ثم قم بتحميل التغيير:
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 -rf WORKING_DIRECTORY
يؤدي حذف العميل نهائيًا إلى حذف أي تغييرات لم تقم بتحميلها للمراجعة.