GIT-REMOTE-EXT(1) Git Manual GIT-REMOTE-EXT(1)

git-remote-ext - اتصال و پل ارتباطی انتقال هوشمند داده به دستور خارجی

git remote add <nick> "ext::<command>[ <arguments>...]"

این ابزار کمکی راه دور از <command> مشخص‌شده برای اتصال به یک سرور راه دور گیت استفاده می‌کند.

داده‌های نوشته‌شده در ورودی استاندارد (stdin) دستور <command> مشخص‌شده به عنوان داده‌های ارسالی به یک سرور git://، git-upload-pack، git-receive-pack یا git-upload-archive (بسته به موقعیت) در نظر گرفته می‌شوند، و داده‌های خوانده‌شده از خروجی استاندارد (stdout) دستور <command> به عنوان داده‌های دریافتی از همان سرویس فرض می‌شوند.

دستور و آرگومان‌های آن با فاصله غیراسکیپ‌شده از یکدیگر جدا می‌شوند.

توالی‌های زیر دارای معانی ویژه‌ای هستند:

'% '

فاصله تحت‌اللفظی در دستور یا آرگومان.

%%

علامت درصد تحت‌اللفظی.

%s

با نام سرویسی که گیت می‌خواهد فراخوانی کند (receive-pack، upload-pack، یا upload-archive) جایگزین می‌شود.

%S

با نام کامل سرویسی که گیت می‌خواهد فراخوانی کند (git-receive-pack، git-upload-pack، یا git-upload-archive) جایگزین می‌شود.

%G (باید نخستین نویسه‌ها در یک آرگومان باشد)

این آرگومان به <command> ارسال نخواهد شد. در عوض، باعث می‌شود که برنامه کمکی با ارسال درخواست‌های سرویس git:// به سمت راه دور شروع به کار کند، به طوری که فیلد service روی مقدار مناسب و فیلد repository روی بقیه آرگومان تنظیم می‌شود. حالت پیش‌فرض، عدم ارسال چنین درخواستی است.

این گزینه زمانی مفید است که طرف راه دور، یک سرور git:// باشد که از طریق یک تونل قابل دسترسی است.

%V (باید نخستین نویسه‌ها در آرگومان باشد)

این آرگومان به <command> ارسال نخواهد شد. در عوض، فیلد vhost را در درخواست سرویس git:// (روی بقیه آرگومان) تنظیم می‌کند. حالت پیش‌فرض، عدم ارسال vhost در چنین درخواستی است (در صورت ارسال درخواست).

GIT_TRANSLOOP_DEBUG

در صورت تنظیم، اطلاعات اشکال‌زدایی درباره عملیات گوناگون خواندن/نوشتن را چاپ می‌کند.

GIT_EXT_SERVICE

روی نام کامل سرویسی که ابزار کمکی باید فراخوانی کند (مانند git-upload-pack و غیره) تنظیم می‌شود.

GIT_EXT_SERVICE_NOPREFIX

روی نام کوتاه سرویسی که ابزار کمکی باید فراخوانی کند (مانند upload-pack و غیره) تنظیم می‌شود.

این ابزار کمکی راه دور به صورت نامحسوس توسط گیت استفاده می‌شود، هنگامی که از دستوراتی مانند "git fetch <URL>"، "git clone <URL>"، "git push <URL>" یا "git remote add <nick> <URL>" استفاده می‌کنید که در آن‌ها <URL> با ext:: آغاز می‌شود. مثال‌ها:

"ext::ssh -i /home/foo/.ssh/somekey user@host.example %S foo/repo"

مشابه host.example:foo/repo است، اما از /home/foo/.ssh/somekey به عنوان جفت‌کلید و از user به عنوان کاربر در سمت راه دور استفاده می‌کند. این کار نیاز به ویرایش .ssh/config را برطرف می‌سازد.

"ext::socat -t3600 - ABSTRACT-CONNECT:/git-server %G/somerepo"

نشان‌دهنده مخزنی با مسیر /somerepo است که از طریق پروتکل git در نشانی فضای نام انتزاعی /git-server قابل دسترسی است.

"ext::git-server-alias foo %G/repo"

نشان‌دهنده مخزنی با مسیر /repo است که با استفاده از برنامه کمکی "git-server-alias foo" مورد دسترسی قرار می‌گیرد. مسیر مخزن و نوع درخواست در خط فرمان ارسال نمی‌شوند، بلکه طبق معمولِ پروتکل git:// بخشی از جریان پروتکل هستند.

"ext::git-server-alias foo %G/repo %Vfoo"

نشان‌دهنده مخزنی با مسیر /repo است که با استفاده از برنامه کمکی "git-server-alias foo" مورد دسترسی قرار می‌گیرد. نام میزبان سرور راه دور که در جریان پروتکل ارسال می‌شود "foo" خواهد بود (این کار امکان اشتراک‌گذاری یک آدرس سطح پیوند را میان چندین سرور مجازی گیت فراهم می‌کند).

"ext::git-server-alias foo %G/repo% with% spaces %Vfoo"

نشان‌دهنده مخزنی با مسیر /repo with spaces است که با استفاده از برنامه کمکی "git-server-alias foo" مورد دسترسی قرار می‌گیرد. نام میزبان سرور راه دور که در جریان پروتکل ارسال می‌شود "foo" خواهد بود (این کار امکان اشتراک‌گذاری یک آدرس سطح پیوند را میان چندین سرور مجازی گیت فراهم می‌کند).

"ext::git-ssl foo.example /bar"

نشان‌دهنده مخزنی است که با استفاده از برنامه کمکی "git-ssl foo.example /bar" مورد دسترسی قرار می‌گیرد. نوع درخواست می‌تواند توسط ابزار کمکی و با استفاده از متغیرهای محیطی تعیین شود (به بخش بالا نگاه کنید).

gitremote-helpers(7)

بخشی از مجموعه git(1)

2026-06-29 Git 2.55.0