hub(1) hub manual hub(1)

hub - آسان‌تر کردن کار با git به‌همراه GitHub

hub [--noop] COMMAND [OPTIONS]
hub alias [-s] [SHELL]
hub help hub-COMMAND

ابزار Hub پوششی پیرامون git است تا قابلیت‌های آن را با ویژگی‌های اضافی برای کارکرد بهتر هنگام تعامل با GitHub گسترش دهد.

دستورهای موجود به دو گروه تقسیم می‌شوند: آن‌هایی که از پیش در git وجود دارند اما توسط hub گسترش یافته‌اند، و دستورهای اختصاصی جدیدی که hub ارائه می‌دهد.

hub-am(1)

اعمال و بازآفرینی محلی کامیت‌ها از یک pull request در GitHub.

hub-apply(1)

دریافت یک وصله (patch) از GitHub و اعمال محلی آن.

hub-checkout(1)

وارسی (checkout) کردن شاخه سرآغاز (head) یک pull request به عنوان یک شاخه محلی.

hub-cherry-pick(1)

دست‌چین کردن (cherry-pick) یک کامیت از یک فورک در GitHub.

hub-clone(1)

کلون کردن یک مخزن از GitHub.

hub-fetch(1)

افزودن ریموت‌های ناموجود پیش از اجرای git fetch.

hub-init(1)

راه‌اندازی اولیه یک مخزن git و افزودن یک ریموت اشاره‌کننده به GitHub.

hub-merge(1)

ادغام یک pull request به‌صورت محلی با پیامی شبیه دکمه Merge در GitHub.

hub-push(1)

ارسال (push) یک شاخه git به هر یک از ریموت‌های فهرست‌شده.

hub-remote(1)

افزودن یک ریموت git برای یک مخزن GitHub.

hub-submodule(1)

افزودن یک زیرماژول (submodule) گیت برای یک مخزن GitHub.

hub-alias(1)

نمایش دستورالعمل‌های شل جهت پوشش‌دهی و جایگزینی git.

hub-api(1)

رابط سطح پایین برای ارسال درخواست به API گیت‌هاب.

hub-browse(1)

باز کردن یک مخزن GitHub در مرورگر وب.

hub-ci-status(1)

نمایش وضعیت بررسی‌های (checks) گیت‌هاب برای یک کامیت.

hub-compare(1)

باز کردن صفحه مقایسه GitHub در مرورگر وب.

hub-create(1)

ایجاد یک مخزن جدید در GitHub و افزودن یک ریموت git برای آن.

hub-delete(1)

حذف یک مخزن در GitHub.

hub-fork(1)

فورک کردن مخزن جاری در GitHub و افزودن یک ریموت git برای آن.

hub-gist(1)

ایجاد و نمایش گیت‌هاب Gistها.

hub-pull-request(1)

ایجاد یک Pull Request در GitHub.

hub-pr(1)

مدیریت Pull Requestهای GitHub برای مخزن جاری.

hub-issue(1)

مدیریت گزارش مشکلات (Issues) در GitHub برای مخزن جاری.

hub-release(1)

مدیریت انتشارها (Releases) در GitHub برای مخزن جاری.

hub-sync(1)

دریافت (fetch) اشیاء git از بالادست (upstream) و به‌روزرسانی شاخه‌های محلی.

بیشتر دستورهای hub به گونه‌ای طراحی شده‌اند که در بستر یک مخزن محلی git موجود اجرا شوند. ابزار Hub با پویش ریموت‌های git، مخزن GitHub مربوط به دایرکتوری کاری فعلی را به طور خودکار شناسایی می‌کند.

در صورتی که چندین ریموت git وجود داشته باشد که همگی به GitHub اشاره می‌کنند، hub بر اساس اولویت فرض می‌کند که ریموت اصلی به‌ترتیب "upstream" ،"github" یا "origin" نام دارد.

هنگام کار با فورک‌ها، توصیه می‌شود که ریموت مربوط به فورک خودتان "origin" و ریموت مربوط به مخزن بالادست "upstream" نام‌گذاری شود. ببینید: ⟨https://help.github.com/articles/configuring-a-remote-for-a-fork⟩

شاخه پیش‌فرض (معمولاً "master") برای مخزن جاری به این صورت شناسایی می‌شود:

git symbolic-ref refs/remotes/origin/HEAD

که در آن origin نام ریموت git برای مخزن بالادست است.

مقصدی که قرار است شاخه جاری به آن ارسال (push) شود، به تنظیم git config push.default بستگی دارد. اگر مقدار آن "upstream" یا "tracking" باشد، اطلاعات ردیابی شاخه به صورت زیر خوانده می‌شود:

git rev-parse --symbolic-full-name BRANCH@{upstream}

در غیر این صورت، hub ریموت‌های git را پویش می‌کند تا نخستین موردی را که refs/remotes/REMOTE/BRANCH در آن وجود دارد پیدا کند. ریموت‌های "origin" ،"github" و "upstream" در آخر جستجو می‌شوند زیرا hub فرض می‌کند به احتمال زیاد شاخه جاری به فورک شما ارسال می‌شود تا به مخزن اصلی و مرجع.

ابزار Hub در اولین باری که نیاز به دسترسی به API داشته باشد، نام کاربری و گذرواژه GitHub را درخواست می‌کند و آن را با یک توکن OAuth مبادله کرده و در ~/.config/hub ذخیره می‌کند.

برای جلوگیری از نمایش این درخواست، از متغیرهای محیطی GITHUB_USER و GITHUB_PASSWORD استفاده کنید.

همچنین می‌توانید GITHUB_TOKEN را مشخص کنید؛ یک توکن دسترسی با مجوزهای repo. این مقدار در ~/.config/hub نوشته نخواهد شد.

اگر پروتکل HTTPS را برای عملیات git ترجیح می‌دهید، می‌توانید hub را به‌گونه‌ای پیکربندی کنید که تمام نشانی‌های وب را به جای git: یا ssh: با https: بسازد:

$ git config --global hub.protocol https

این تنظیم بر دستورهای clone ،fork ،remote add و دیگر دستورهای hub که ارجاعات کوتاه به نشانی‌های مخزن GitHub را باز می‌کنند تأثیر می‌گذارد.

به‌طور پیش‌فرض، hub تنها با مخازنی کار می‌کند که ریموت‌های آن‌ها به github.com اشاره دارند. میزبان‌های GitHub Enterprise باید در لیست سفید قرار گیرند تا hub با چنین ریموت‌هایی همانند github.com رفتار کند:

$ git config --global --add hub.host MY.GIT.ORG

میزبان پیش‌فرض برای دستورهایی مانند init و clone همچنان github.com است، اما این مقدار را می‌توان با متغیر محیطی GITHUB_HOST تغییر داد:

$ GITHUB_HOST=my.git.org git clone myproject

HUB_VERBOSE

اگر این متغیر محیطی تنظیم شود، گزارش‌های با جزئیات کامل در خروجی خطای استاندارد (stderr) چاپ خواهند شد.

HUB_CONFIG

مسیر فایلی که پیکربندی hub از آن خوانده و در آن ذخیره می‌شود. اگر XDG_CONFIG_HOME تعریف شده باشد، مقدار پیش‌فرض $XDG_CONFIG_HOME/hub است؛ در غیر این صورت $HOME/.config/hub خواهد بود. همچنین بر اساس مشخصات راهنمای پایه‌ای XDG، فایل پیکربندی در XDG_CONFIG_DIRS نیز جستجو می‌شود.

HUB_PROTOCOL

یکی از مقادیر "https"، "ssh" یا "git" به عنوان پروتکل ترجیحی برای عملیات‌های clone/push در git.

GITHUB_HOST

نام میزبان GitHub که باید به جای "github.com" به عنوان پیش‌فرض استفاده شود.

GITHUB_TOKEN

توکن OAuth مورد استفاده برای درخواست‌های API گیت‌هاب.

GITHUB_USER

نام کاربری GitHub عامل انجام عملیات‌های API گیت‌هاب.

GITHUB_PASSWORD

گذرواژه GitHub که برای مبادله مشخصات کاربر با یک توکن OAuth و ذخیره در پیکربندی hub استفاده می‌شود. اگر تنظیم نشده باشد، ممکن است در اولین اجرا به صورت تعاملی درخواست شود.

GITHUB_REPOSITORY

مقداری با قالب "OWNER/REPO" که مخزن هدف برای انجام عملیات‌های API را مشخص می‌کند. در حال حاضر فقط برای حدس زدن مقدار پیش‌فرض GITHUB_USER در درخواست‌های API به کار می‌رود.

⟨https://github.com/github/hub/issues⟩

⟨https://github.com/github/hub/contributors⟩

git(1), git-clone(1), git-remote(1), git-init(1), ⟨https://github.com/github/hub⟩

12 Jul 2024 hub version 2.14.2