Google is committed to advancing racial equity for Black communities. See how.
این صفحه به‌وسیله ‏Cloud Translation API‏ ترجمه شده است.
Switch to English

گردش کار کنترل منبع

کار با کد Android به استفاده از Git (سیستم کنترل نسخه منبع باز) و Repo (ابزاری برای مدیریت مخزن ساخته شده توسط Google که در بالای Git اجرا می شود) نیاز دارد. برای توضیح رابطه بین Repo و Git و پیوند به مستندات پشتیبانی برای هر ابزار ، به ابزارهای کنترل منبع مراجعه کنید.

جریان

توسعه اندروید شامل گردش کار اساسی زیر است:

  1. با استفاده از repo start شاخه موضوعی جدید را repo start .
  2. پرونده ها را ویرایش کنید.
  3. تغییرات مرحله با استفاده از git add .
  4. با استفاده از git commit تعهد تغییرات را git commit .
  5. با استفاده از repo upload مجدد ، تغییرات را در سرور بررسی 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 git add نمی کند. همچنین می تواند برای مرحله سازی تغییرات و حذف پرونده ها مورد استفاده قرار گیرد.

مشاهده وضعیت مشتری

برای لیست وضعیت پرونده ها:

repo status

برای مشاهده ویرایشهای غیرمتعهد (ویرایشهای محلی که برای مرتکب مشخص نشده اند):

repo diff

برای مشاهده ویرایشهای متعهد (ویرایشهای مستقر در علامت گذاری شده برای تعهد) ، اطمینان حاصل کنید که در فهرست پروژه هستید سپس git diff با آرگومان cached :

cd ~/WORKING_DIRECTORY/PROJECT
git diff --cached

انجام تغییرات

Commit یک واحد اساسی کنترل تجدید نظر در Git است و شامل یک عکس فوری از ساختار دایرکتوری و محتوای پرونده برای کل پروژه است. برای ایجاد تعهد در Git:

git commit

در صورت درخواست پیام متعهد ، یک پیام کوتاه (اما مفید) برای تغییرات ارسال شده به AOSP ارائه دهید. اگر پیام متعهد اضافه نکنید ، مرتکب می شود.

بارگذاری تغییرات در Gerrit

به جدیدترین نسخه به روز کنید ، سپس تغییر را بارگذاری کنید:

repo sync
repo upload

این دستورات لیستی از تغییراتی را که مرتکب شده اید برمی گرداند و از شما می خواهد شاخه هایی را برای بارگذاری در سرور بررسی انتخاب کنید. اگر فقط یک شاخه وجود داشته باشد ، یک اعلان ساده y/n .

حل تعارضات همگام سازی

اگر دستور 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

با حذف مشتری به طور دائمی ، تغییراتی را که برای بررسی بارگذاری نکرده اید حذف می کند.