Chapters ▾ 2nd Edition

A3.5 پیوست C: دستورات گیت (Git Commands) - به‌اشتراک‌گذاری و به‌روزرسانی پروژه‌ها (Sharing and Updating Projects)

به‌اشتراک‌گذاری و به‌روزرسانی پروژه‌ها (Sharing and Updating Projects)

دستورات بسیار کمی در Git وجود دارند که از شبکه استفاده می‌کنند؛ تقریباً همهٔ دستورات روی پایگاه دادهٔ محلی عمل می‌کنند. وقتی آمادهٔ اشتراک‌گذاری کارتان یا کشیدن (pull) تغییرات از منابع دیگر هستید، چند دستور وجود دارند که با مخازن راه دور سر و کار دارند.

دریافت به‌روزرسانی‌ها از مخزن راه‌دور (git fetch)

دستور git fetch با یک مخزن راه دور ارتباط برقرار کرده و تمام اطلاعاتی را که در آن مخزن هست ولی در مخزن جاری شما نیست، دانلود کرده و در پایگاه دادهٔ محلی شما ذخیره می‌کند.

ما ابتدا این دستور را در فچ و پول کردن از ریموت های شما (Fetching and Pulling from Your Remotes) بررسی می‌کنیم و مثال‌های بیشتری از کاربرد آن را در شاخه‌های راه دور (Remote Branches) می‌بینیم.

همچنین از آن در چند مثال در مشارکت در یک پروژه (Contributing to a Project) استفاده می‌کنیم.

ما از آن برای بازیابی یک ارجاع (reference) خاص که خارج از فضای پیش‌فرض است در رفرنس‌های درخواست کشش (Pull Request Refs) استفاده می‌کنیم و می‌بینیم چگونه از یک bundle فراخوانی (fetch) کنیم در بسته‌بندی (Bundling).

دریافت و ادغام به‌روزرسانی‌ها از مخزن راه‌دور (git pull)

ما refspec‌های بسیار سفارشی را تنظیم می‌کنیم تا git fetch کاری کمی متفاوت از حالت پیش‌فرض انجام دهد در نگاشت (The Refspec).

دستور git pull اساساً ترکیبی از دو دستور git fetch و git merge است، که در آن گیت از راه دوری را که مشخص می‌کنید می‌گیرد و سپس فوراً سعی می‌کند آن را با شاخه‌ای که رویش هستید ادغام کند.

ما آن را به‌طور مختصر در فچ و پول کردن از ریموت های شما (Fetching and Pulling from Your Remotes) معرفی می‌کنیم و نشان می‌دهیم اگر آن را اجرا کنید چه چیزی را ادغام خواهد کرد در بررسی مخزن راه‌دور (Inspecting a Remote).

ما نشان می‌دهیم چگونه می‌توان از آن با یک URL برای یک‌بار کشیدن تغییرات استفاده کرد (نگاه کنید به <<_checking_out_remotes>>).

در نهایت به‌طور کوتاه اشاره می‌کنیم که می‌توانید از گزینهٔ --verify-signatures برای آن استفاده کنید تا تأیید کنید کمیت‌هایی که می‌کشید با GPG امضا شده‌اند (نگاه کنید به امضای کامیت‌ها (Signing Commits)).

ارسال تغییرات به مخزن راه‌دور (git push)

دستور git push برای ارتباط با مخزن دیگر، محاسبهٔ تفاوت بین پایگاه‌دادهٔ محلی شما و مخزن راه دور و سپس فشار دادن (منتقل‌کردن) آن تفاوت به مخزن دیگر استفاده می‌شود. این دستور نیاز به دسترسی نوشتن روی مخزن دیگر دارد و بنابراین معمولاً به‌نوعی احراز هویت می‌شود.

ابتدا به دستور git push در Pushing to Your Remotes (پوش کردن به ریموت های شما) می‌پردازیم. در اینجا اصول پایهٔ فرستادن یک شاخه به مخزن راه دور را پوشش می‌دهیم. در ارسال (Pushing) به جزئیات بیشتری دربارهٔ فرستادن شاخه‌های مشخص می‌پردازیم و در شاخه‌های دنبال‌کننده (Tracking Branches) می‌بینیم چگونه شاخه‌های دنبال‌کننده را طوری تنظیم کنیم که به‌طور خودکار برایشان push انجام شود. در حذف شاخه ها (Deleting Remote Branches) از فلگ --delete برای حذف یک شاخه در سرور با استفاده از git push استفاده می‌کنیم.

در سراسر مشارکت در یک پروژه (Contributing to a Project) چندین مثال از استفادهٔ git push برای اشتراک‌گذاری کار روی شاخه‌ها از طریق چند مخزن راه دور می‌بینیم.

می‌بینیم چگونه با گزینهٔ --tags تگ‌هایی را که ساخته‌اید به اشتراک بگذارید (نگاه کنید به اشتراک گذاری تگ ها (Sharing Tags)).

در انتشار تغییرات زیرماژول (Publishing Submodule Changes) از گزینهٔ --recurse-submodules استفاده می‌کنیم تا بررسی کنیم همهٔ کارهای زیرماژول‌ها منتشر شده‌اند قبل از اینکه سوپرپروژه را push کنیم، که هنگام استفاده از زیرماژول‌ها بسیار مفید است.

در هوک های دیگر کلاینت (Other Client Hooks) مختصراً دربارهٔ hook به‌نام pre-push صحبت می‌کنیم، اسکریپتی که می‌توانیم تنظیم کنیم تا قبل از تکمیل push اجرا شود و بررسی کند آیا اجازهٔ push داده شود یا نه.

در نهایت، در <<_pushing_refspecs>> به فرستادن (push) با یک refspec کامل می‌پردازیم، نه میان‌بُرهای کلی که معمولاً استفاده می‌شوند. این کار به شما کمک می‌کند دقیقاً مشخص کنید چه کاری را می‌خواهید به اشتراک بگذارید.

مدیریت مخازن راه‌دور (git remote)

دستور git remote ابزاری برای مدیریت فهرست مخازن راه‌دور (remote) شماست. این دستور به شما اجازه می‌دهد آدرس‌های طولانی را به نام‌های کوتاه مانند «origin» ذخیره کنید تا مجبور نباشید همیشه آن‌ها را تایپ کنید. شما می‌توانید چندین نام از این دست داشته باشید و دستور git remote برای افزودن، تغییر و حذف آن‌ها استفاده می‌شود.

این دستور به‌صورت مفصل در کار کردن با ریموت ها (Working with Remotes) پوشش داده شده است، از جمله فهرست‌گیری، افزودن، حذف و تغییر نام مخازن راه‌دور.

این دستور در تقریباً همه فصل‌های بعدی کتاب نیز استفاده می‌شود، اما همیشه در قالب استاندارد git remote add <name> <url> به کار رفته است.

ایجاد آرشیو از مخزن (git archive)

دستور git archive برای ایجاد یک فایل آرشیو از یک تصویر (snapshot) خاص از پروژه به کار می‌رود.

ما از git archive برای ساخت یک tarball از پروژه جهت به اشتراک‌گذاری در آماده‌سازی نسخه انتشار (Preparing a Release) استفاده می‌کنیم.

مدیریت زیرماژول‌ها (git submodule)

دستور git submodule برای مدیریت مخازن خارجی درون یک مخزن عادی به کار می‌رود. این می‌تواند برای کتابخانه‌ها یا انواع دیگر منابع مشترک مفید باشد. دستور submodule دارای چند زیر‌دستور (مثل add، update، sync و غیره) برای مدیریت این منابع است.

این دستور تنها ذکر شده و به‌طور کامل در سابماژول ها (Submodules) پوشش داده شده است.

scroll-to-top