تلتزم Google بتعزيز المساواة العرقية للمجتمعات السوداء. أنظر كيف.
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

سير عمل التحكم بالمصادر

يتطلب العمل مع رمز Android استخدام Git (نظام تحكم إصدار مفتوح المصدر) و Repo (أداة إدارة المستودعات التي تصممها Google والتي تعمل أعلى Git). راجع أدوات التحكم في المصدر للحصول على شرح للعلاقة بين Repo و Git وروابط الوثائق الداعمة لكل أداة.

تدفق

يتضمن تطوير Android سير العمل الأساسي التالي:

  1. بدء فرع موضوع جديد باستخدام repo start .
  2. قم بتحرير الملفات.
  3. تغييرات المرحلة باستخدام git add .
  4. تنفيذ التغييرات باستخدام git commit .
  5. تحميل التغييرات إلى خادم المراجعة باستخدام 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. إذا لم تقم بإضافة رسالة التزام ، يتم إحباط الالتزام.

تحميل التغييرات إلى Gerrit

قم بالتحديث لآخر نسخة ، ثم قم بتحميل التغيير:

repo sync
repo upload

تعيد هذه الأوامر قائمة بالتغييرات التي قمت بها وتطالبك بتحديد الفروع لتحميلها على خادم المراجعة. إذا كان هناك فرع واحد فقط ، فسترى موجه y/n بسيط.

حل تعارضات المزامنة

إذا repo sync الأمر repo sync 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

يؤدي حذف عميل إلى حذف أي تغييرات لم تحمّلها للمراجعة نهائيًا .