Google متعهد به پیشبرد برابری نژادی برای جوامع سیاه است. ببینید چگونه.
این صفحه به‌وسیله ‏Cloud Translation API‏ ترجمه شده است.
Switch to English

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

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

جریان

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

  1. با استفاده از repo start شعبه جدیدی را repo start .
  2. پرونده ها را ویرایش کنید.
  3. تغییرات مرحله با استفاده از git add .
  4. تغییرات را با استفاده از 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

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

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

git commit

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

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

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

repo sync
repo upload

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

حل اختلافات همگام سازی

اگر فرمان repo 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

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