Repo با ساده کردن کار در چندین مخزن Git را تکمیل می کند. مشاهده ابزار کنترل منبع برای توضیح رابطه بین مخزن و دستگاه گوارش. برای اطلاعات بیشتر در مخزن، را ببینید مخزن README .
استفاده از رپو به شکل زیر است:
repo command options
عناصر اختیاری در پرانتز [ ] نشان داده شده اند. به عنوان مثال، بسیاری از دستورات را project-list به عنوان آرگومان. شما می توانید مشخص project-list به عنوان یک لیست از نام یا یک لیست از مسیرهای به دایرکتوری ها منبع محلی برای پروژه های:
repo sync [project0 project1 ... projectn]
repo sync [/path/to/project0 ... /path/to/projectn]
کمک
این صفحه فقط گزینه های کلیدی را برجسته می کند. برای جزئیات کامل به راهنمای خط فرمان مراجعه کنید. هنگامی که Repo نصب می شود، می توانید آخرین مستندات را که با خلاصه ای از تمام دستورات شروع می شود با اجرای:
repo help
با اجرای این مورد در درخت Repo می توانید اطلاعات دقیق در مورد هر دستوری را مشاهده کنید:
repo help command
به عنوان مثال، دستور زیر بازده توضیحات و لیستی از گزینه های برای init
استدلال مخزن، که مقدار دهی اولیه مخزن در دایرکتوری جاری. (نگاه کنید به init انجام برای جزئیات بیشتر.)
repo help init
یا برای دیدن فقط لیست گزینه های موجود، اجرا کنید:
repo command --helpبه عنوان مثال:
repo init --help
شروع کنید
repo init -u url [options]
Repo را در فهرست فعلی نصب می کند. این باعث ایجاد یک .repo/
دایرکتوری با مخزنهای Git برای کد منبع مخزن و استاندارد فایل های آشکار آندروید.
گزینه ها:
-
-u
: مشخص کردن یک URL که از آن برای بازیابی یک آشکار مخزن. آشکار مشترک است که در پیداhttps://android.googlesource.com/platform/manifest
. -
-m
: یک فایل مانیفست در مخزن را انتخاب کنید. اگر هیچ نام آشکار انتخاب شده است، به طور پیش فرض استdefault.xml
. -
-b
: مشخص تجدید نظر، این است که، یک خاص manifest-branch .
توجه: برای همه دستورات مخزن باقی مانده، دایرکتوری جاری یا باید پوشه مادر شود .repo/
یا یک زیر شاخه از دایرکتوری پدر و مادر.
همگام سازی
repo sync [project-list]
دانلود تغییرات جدید و به روز رسانی فایل های مشغول به کار در محیط زیست محلی خود، در اصل انجام git fetch
در تمام منابع Git. اگر شما repo sync
بدون استدلال، آن را هماهنگ فایل ها را برای همه پروژه ها.
هنگامی که شما اجرا repo sync
، این چیزی است که اتفاق می افتد:
اگر پروژه هرگز هماهنگ شده است، پس از آن
repo sync
برابر است باgit clone
. تمام شاخه های موجود در مخزن راه دور در دایرکتوری پروژه محلی کپی می شوند.اگر پروژه قبل از هماهنگ شده است، پس از آن
repo sync
برابر است با:git remote update git rebase origin/branch
که در آن
branch
شاخه در حال حاضر چک کردن در دایرکتوری پروژه محلی است. اگر شعبه محلی شاخه ای را در مخزن راه دور ردیابی نمی کند، هیچ هماهنگی برای پروژه رخ نمی دهد.اگر دستگاه گوارش نتایج عملیات در درگیری های ادغام REBASE، استفاده از دستورات عادی دستگاه گوارش (برای مثال،
git rebase --continue
) به حل و فصل درگیری.
پس از اجرای موفقیت آمیز repo sync
، کد امنیتی را در پروژه های مشخص شده است به روز و همگام سازی با کد امنیتی را در مخزن از راه دور.
در اینجا گزینه های کلیدی وجود دارد. مشاهده repo help sync
برای اطلاعات بیشتر:
-c
: واکشی تنها شاخه آشکار فعلی از سرور.-d
: پروژه های تغییر مشخص به تجدید نظر آشکار عقب. اگر پروژه در حال حاضر در یک شاخه موضوعی باشد، اما به طور موقت به ویرایش مانیفست نیاز است، این کار مفید است.-f
: ادامه با همگام سازی پروژه های دیگر حتی اگر یک پروژه نتواند به همگام سازی.-j threadcount
: تقسیم همگام سازی در سراسر موضوعات برای تکمیل سریعتر. مطمئن شوید که دستگاه خود را تحت تأثیر قرار نمی دهید - مقداری از CPU را برای کارهای دیگر در نظر بگیرید. برای دیدن تعداد CPU های موجود، برای اولین بار اجرا:nproc --all
-q
: بی سر و صدا با سرکوب پیام های وضعیت را اجرا کنید.-s
: همگام سازی به ساخت خوب شناخته شده به عنوان توسط مشخص manifest-server عنصر در اظهارنامه جاری است.
بارگذاری
repo upload [project-list]
برای پروژه های مشخص شده، Repo شعب محلی را با شاخه های راه دور به روز شده در آخرین همگام سازی Repo مقایسه می کند. Repo از شما می خواهد که یک یا چند شعبه را که برای بررسی آپلود نشده اند انتخاب کنید.
سپس تمام تعهدات روی شاخه های انتخاب شده از طریق یک اتصال HTTPS به Gerrit منتقل می شود. برای فعال کردن مجوز آپلود، باید رمز عبور HTTPS را پیکربندی کنید. مشاهده رمز عبور ژنراتور برای تولید یک جفت کاربری / رمز عبور جدید برای استفاده بر روی HTTPS.
هنگامی که Gerrit داده های شی را روی سرور خود دریافت می کند، هر commit را به یک تغییر تبدیل می کند تا بازبینان بتوانند در مورد یک commit خاص نظر دهند. به ترکیب چندین مرتکب ایست بازرسی را به یک مرتکب، استفاده از git rebase -i
قبل از شما اجرا آپلود.
اگر شما repo upload
بدون استدلال، آن را جستجو تمام پروژه برای تغییرات برای آپلود.
به تغییرات ویرایش پس از آپلود شده است، استفاده از یک ابزار مثل git rebase -i
یا git commit --amend
برای به روز رسانی مرتکب محلی خود را. پس از تکمیل ویرایش های شما:
- بررسی کنید که شعبه بهروزرسانی شده، شعبهای است که در حال حاضر بررسی شده است.
- برای هر commit در سری، شناسه تغییر Gerrit را در داخل براکت ها وارد کنید:
# Replacing from branch foo [ 3021 ] 35f2596c Refactor part of GetUploadableBranches to lookup one specific... [ 2829 ] ec18b4ba Update proto client to support patch set replacments # Insert change numbers in the brackets to add a new patch set. # To create a new change record, leave the brackets empty.
پس از تکمیل آپلود، تغییرات دارای یک مجموعه پچ اضافی هستند.
اگر می خواهید آپلود فقط در حال حاضر خارج شاخه دستگاه گوارش بررسی می شود، استفاده از پرچم --current-branch
(یا --cbr
برای کوتاه).
تفاوت
repo diff [project-list]
نشان می دهد تغییرات برجسته بین مرتکب و درخت کاری با استفاده از git diff
.
دانلود
repo download target change
تغییر مشخص شده را از سیستم بررسی دانلود می کند و در فهرست کاری محلی پروژه شما در دسترس قرار می دهد.
به عنوان مثال، برای دانلود تغییر 23823 را به دایرکتوری پلت فرم / ساخت خود قرار دهید:
repo download platform/build 23823
در حال اجرا repo sync
حذف هر گونه مرتکب بازیابی با repo download
. یا شما می توانید با استفاده از چک کردن از راه دور شاخه git checkout m/master
.
توجه: تاخیر تکرار به تمام سرورهای سراسر جهان وجود دارد، به طوری که تاخیر معکوس اندکی بین زمانی که یک تغییر در وب در قابل مشاهده است وجود دارد گریت و هنگامی که repo download
می توانید تغییر برای همه کاربران را پیدا
برای همه
repo forall [project-list] -c command
دستور shell داده شده را در هر پروژه اجرا می کند. متغیرهای محیطی اضافی زیر توسط دسترس repo forall
:
REPO_PROJECT
به نام منحصر به فرد این پروژه تنظیم شده است.REPO_PATH
مسیر نسبت به ریشه مشتری است.REPO_REMOTE
نام سیستم از راه دور از مانیفست است.REPO_LREV
نام تجدید نظر از مانیفست، ترجمه شده به شاخه ردیابی محلی است. اگر نیاز دارید که ویرایش مانیفست را به یک فرمان Git که به صورت محلی اجرا شده است، از این استفاده کنید.REPO_RREV
نام این اصلاحیه از آشکار است، دقیقا همانطور که در اظهارنامه نوشته شده است.
گزینه ها:
-c
: فرمان و شناسهها را به اجرا. دستور است که از طریق ارزیابی/bin/sh
و هر گونه استدلال پس از آن از طریق به عنوان پارامترهای مکانی پوسته منتقل می شود.-p
: هدر نمایش پروژه قبل از خروجی دستور مشخص شده است. این امر با اتصال لولهها به استریمهای stdin، stdout و sterr فرمان، و لولهگذاری تمام خروجیها به یک جریان پیوسته که در یک جلسه پیجر نمایش داده میشود، به دست میآید.-v
: نمایش پیام فرمان می نویسد به stderr.
هرس کنید
repo prune [project-list]
موضوعاتی که قبلاً ادغام شده اند را هرس می کند (حذف می کند).
شروع کنید
repo start branch-name [project-list]
یک شاخه جدید را برای توسعه شروع می کند، که از بازبینی مشخص شده در مانیفست شروع می شود.
BRANCH_NAME
استدلال یک توضیح کوتاه از این تغییر شما در حال تلاش برای ایجاد به پروژه فراهم می کند. اگر شما نمی دانید که، در نظر با استفاده از نام default
.
project-list
مشخص استدلال که پروژه ها در این شاخه موضوع شرکت کنند.
توجه: (.) دوره مخفف این پروژه در دایرکتوری جاری است.
وضعیت
repo status [project-list]
درخت کار را با ناحیه مرحله بندی (شاخص) و جدیدترین تعهد در این شاخه (HEAD) در هر پروژه مشخص شده مقایسه می کند. یک خط خلاصه را برای هر فایل نشان می دهد که در آن بین این سه حالت تفاوت وجود دارد.
برای مشاهده وضعیت از فقط شعبه فعلی، اجرا repo status .
. اطلاعات وضعیت بر اساس پروژه فهرست شده است. برای هر فایل در پروژه از یک کد دو حرفی استفاده می شود.
در ستون اول، یک حرف بزرگ نشان می دهد که منطقه مرحله بندی با آخرین حالت متعهد چه تفاوتی دارد.
حرف | معنی | شرح |
---|---|---|
- | بدون تغییر | در HEAD و index هم همینطور |
آ | اضافه | نه در HEAD، در شاخص |
م | اصلاح شده | در HEAD، در شاخص اصلاح شده است |
دی | حذف شده | در HEAD، نه در شاخص |
آر | تغییر نام داد | نه در HEAD، مسیر در شاخص تغییر کرد |
سی | کپی شد | نه در HEAD، از دیگری در فهرست کپی شده است |
تی | حالت تغییر کرد | همان محتوا در HEAD و فهرست، حالت تغییر کرد |
U | ادغام نشد | تضاد بین HEAD و شاخص؛ وضوح مورد نیاز |
در ستون دوم، یک حرف کوچک نشان می دهد که دایرکتوری کار با فهرست تفاوت دارد.
حرف | معنی | شرح |
---|---|---|
- | جدید/ناشناس | نه در شاخص، در درخت کار |
متر | اصلاح شده | در فهرست، در درخت کار، اصلاح شده است |
د | حذف شده | در شاخص نه در درخت کار |
رسیدگی به خطاهای مخزن
git commit -a # Commit local changes first so they aren't lost. repo start branch-name # Start the branch git reset --hard HEAD@{1} # And reset the branch so that it matches the commit before repo start repo upload .
خطای repo: error: no branches ready for upload
هنگامی که دستور به نظر می رسد repo start
شد در آغاز جلسه اجرا کنید. برای بازیابی، می توانید شناسه commit را بررسی کنید، یک شاخه جدید راه اندازی کنید و سپس آن را ادغام کنید.