| REPO(1) | راهنمای Repo | REPO(1) |
نام (NAME)
repo - راهاندازی و مقداردهی اولیه کلاینت repo
خلاصه دستور (SYNOPSIS)
repo init [گزینهها] [manifest url]
توضیحات (DESCRIPTION)
خلاصه
راهاندازی و مقداردهی اولیه یک کلاینت repo در دایرکتوری جاری
گزینهها (OPTIONS)
- -h, --help
- نمایش این پیام راهنما و خروج
گزینههای ثبت وقایع (Logging options):
- -v, --verbose
- نمایش تمامی خروجیها
- -q, --quiet
- تنها نمایش خطاها
گزینههای مانیفست (Manifest options):
- -u URL, --manifest-url=URL
- مکان مخزن manifest
- -b REVISION, --manifest-branch=REVISION
- شاخه یا بازنگری (revision) مانیفست (برای پیشفرض از HEAD استفاده کنید)
- --manifest-upstream-branch=BRANCH
- هنگامی که یک کامیت به --manifest-branch داده میشود، این گزینه نام مرجع git (git ref) است که کامیت در آن یافت میشود
- -m NAME.xml, --manifest-name=NAME.xml
- فایل manifest اولیه
- -g GROUP, --groups=GROUP
- محدود کردن پروژههای manifest به مواردی با گروه(های) مشخصشده [default|all|G1,G2,G3|G4,-G5,-G6]
- -p PLATFORM, --platform=PLATFORM
- محدود کردن پروژههای manifest به مواردی با گروه پلتفرم مشخصشده [auto|all|none|linux|darwin|...]
- --submodules
- همگامسازی تمامی زیرماژولهای (submodules) مرتبط با مخزن manifest
- --standalone-manifest
- بارگیری manifest بهصورت یک فایل ایستا به جای ایجاد یک checkout گیت از مخزن manifest
- --manifest-depth=DEPTH
- ایجاد یک کلون کمعمق (shallow clone) از مخزن manifest با عمق دادهشده (۰ برای کلون کامل)؛ git clone را ببینید (پیشفرض: 0)
گزینههای دریافت (فقط) مانیفست (Manifest only checkout options):
- -c, --current-branch
- تنها واکشی شاخه مانیفست جاری از سرور (پیشفرض)
- --no-current-branch
- واکشی تمام شاخههای مانیفست از سرور
- واکشی تگهای موجود در manifest
- --no-tags
- تگهای موجود در manifest واکشی نشوند
حالتهای دریافت (Checkout modes):
- --mirror
- ایجاد یک نسخه مشابه (replica) از مخازن ریموت به جای دایرکتوری کاری کلاینت
- --archive
- دریافت یک آرشیو به جای مخزن git برای هر پروژه. git archive را ببینید.
- --worktree
- استفاده از git-worktree برای مدیریت پروژهها
بهینهسازیهای دریافت پروژه (Project checkout optimizations):
- --reference=DIR
- مکان دایرکتوری آینه (mirror)
- --dissociate
- جدا کردن پیوند از آینههای مرجع پس از اتمام clone
- --depth=DEPTH
- ایجاد یک کلون کمعمق با عمق دادهشده؛ git clone را ببینید
- --partial-clone
- انجام کلون جزئی (partial clone) (https://gitscm.com/docs/gitrepositorylayout#_code_partialclone_code)
- --no-partial-clone
- غیرفعالسازی استفاده از کلون جزئی (https://gitscm.com/docs/gitrepositorylayout#_code_partialclone_code)
- --partial-clone-exclude=PARTIAL_CLONE_EXCLUDE
- مستثنی کردن پروژههای مشخصشده (نامهای پروژه با کاما جدا شوند) از کلون جزئی (https://gitscm.com/docs/gitrepositorylayout#_code_partialclone_code)
- --clone-filter=CLONE_FILTER
- فیلتر مورد استفاده با --partial-clone [پیشفرض: blob:none]
- --use-superproject
- استفاده از superproject مانیفست برای همگامسازی پروژهها؛ شامل -c میشود
- --no-use-superproject
- غیرفعالسازی استفاده از superprojectهای مانیفست
- --clone-bundle
- فعالسازی استفاده از /clone.bundle بر روی HTTP/HTTPS (در صورت عدم استفاده از --partial-clone پیشفرض است)
- --no-clone-bundle
- غیرفعالسازی استفاده از /clone.bundle بر روی HTTP/HTTPS (در صورت استفاده از --partial-clone پیشفرض است)
- --git-lfs
- فعالسازی پشتیبانی از Git LFS
- --no-git-lfs
- غیرفعالسازی پشتیبانی از Git LFS
گزینههای نسخه repo (repo Version options):
- --repo-url=URL
- مکان مخزن repo ($REPO_URL)
- --repo-rev=REV
- شاخه یا بازنگری repo ($REPO_REV)
- --no-repo-verify
- عدم اعتبارسنجی کد منبع repo
سایر گزینهها (Other options):
- --config-name
- همواره برای نام/رایانامه (e-mail) سؤال شود
چندمانیفستی (Multi-manifest):
- --outer-manifest
- شروع عملیات از بیرونیترین manifest
- --no-outer-manifest
- عدم اعمال عملیات بر روی manifestهای بیرونی
- --this-manifest-only
- تنها بر روی این (زیر)مانیفست عملیات انجام شود
- --no-this-manifest-only, --all-manifests
- اعمال عملیات بر روی این manifest و زیرمانیفستهای آن
برای مشاهده راهنمای تفصیلی، فرمان `repo help init` را اجرا کنید.
جزئیات (DETAILS)
دستور 'repo init' یک بار برای نصب و راهاندازی repo اجرا میشود. جدیدترین کد منبع repo و مجموعه manifest از سرور دانلود شده و در دایرکتوری .repo/ در دایرکتوری کاری جاری نصب میشود.
هنگام ایجاد یک checkout جدید، نشانی وب manifest تنها تنظیم الزامی است. این نشانی میتواند با استفاده از گزینه --manifest-url یا به عنوان نخستین آرگومان اختیاری مشخص شود.
آرگومان اختیاری -b میتواند برای انتخاب شاخه manifest جهت دریافت (checkout) و استفاده به کار رود. اگر هیچ شاخهای مشخص نشود، شاخه پیشفرض سرور دوردست (remote) استفاده خواهد شد. این معادل استفاده از -b HEAD است.
آرگومان اختیاری --manifest-upstream-branch هنگامی که یک کامیت به --manifest-branch (یا -b) داده شده است، میتواند برای تعیین نام git ref که کامیت در آن یافت میشود به کار رود.
آرگومان اختیاری -m میتواند برای تعیین یک manifest جایگزین مورد استفاده قرار گیرد. اگر هیچ manifestی مشخص نشود، فایل پیشفرض default.xml استفاده خواهد شد.
اگر آرگومان --standalone-manifest تنظیم شود، manifest مستقیماً از --manifest-url مشخصشده به صورت یک فایل ایستا بارگیری میشود (به جای راهاندازی یک checkout گیت برای manifest). با گزینه --standalone-manifest، فایل manifest کاملاً ایستا خواهد بود و در فراخوانیهای بعدی `repo init` و `repo sync` دوباره دانلود نخواهد شد.
گزینه --reference میتواند برای اشاره به دایرکتوریای به کار رود که دارای محتوای یک همگامسازی --mirror است. این کار باعث میشود دایرکتوری کاری هنگام واکشی از سرور، تا حد امکان از دادههای دایرکتوری مرجع محلی استفاده کند. با کاهش ترافیک داده در شبکه، این امر سرعت همگامسازی را بسیار افزایش میدهد.
گزینه --dissociate میتواند برای قرض گرفتن اشیاء از دایرکتوری مشخصشده با گزینه --reference تنها به منظور کاهش انتقال شبکه استفاده شود؛ و پس از انجام نخستین کلون، با ایجاد رونوشتهای محلی مورد نیاز از اشیاء قرضگرفتهشده، استفاده اشتراکی از آنها پایان یابد.
گزینه --no-clone-bundle هرگونه تلاش برای استفاده از $URL/clone.bundle جهت راهاندازی اولیه یک مخزن Git جدید از یک فایل bundle با قابلیت ادامه دانلود (resumeable) روی شبکه توزیع محتوا (CDN) را غیرفعال میکند. در صورتی که کلاینت محلی پایتون برای HTTP یا پیکربندی پروکسی دچار مشکل بوده اما باینری Git بهدرستی کار کند، این گزینه ممکن است ضروری باشد.
تغییر شاخههای مانیفست
برای تغییر به یک شاخه manifest دیگر در یک کلاینت موجود، میتوان از `repo init -b otherbranch` استفاده کرد. با این حال، از آنجا که این کار تنها manifest را بهروزرسانی میکند، اجرای متعاقب `repo sync` (یا `repo sync -d`) برای بهروزرسانی فایلهای دایرکتوری کاری ضروری است.
| September 2024 | repo init |