دریافت تغییرات از مخزن ریموت
پیشنمایش دستور
استفاده
git fetch [گزینهها] [] [ ...]
مثالها
git fetch origin # Fetch changes from origin git fetch --all # Fetch from all remotes git fetch origin develop # Fetch a specific branch git fetch --prune # Remove deleted remote branches git fetch --depth=1 # Shallow fetch
دقیقا چه میکند؟
دستور git fetch تغییرات را از یک مخزن ریموت دانلود میکند، از جمله شاخهها، تگها و کامیتهای جدید. با این حال، این دستور هیچ تغییری در شاخه یا دایرکتوری کاری شما اعمال نمیکند و فقط مخزن محلی شما را با آخرین تغییرات ریموت بهروزرسانی میکند.
موارد کاربرد رایج
- دریافت تغییرات از یک مخزن ریموت خاص.
- دریافت بهروزرسانیها از تمام مخازن ریموت موجود در پیکربندی.
- حذف شاخههای حذف شده ریموت از مراجع محلی.
- انجام دریافت کمعمق برای محدود کردن تاریخچه دریافت شده.
مقایسه با `git pull`
دستور git fetch فقط تغییرات را دانلود میکند و هیچ تغییری در شاخه کاری شما اعمال نمیکند. در حالی که git pull بهطور خودکار تغییرات را دریافت کرده و آنها را در شاخه فعلی ادغام میکند. به این ترتیب، git fetch کنترل بیشتری را به شما میدهد، زیرا میتوانید تغییرات را قبل از ادغام بررسی کنید.
محدودیتها
- تغییرات را به شاخه فعلی ادغام نمیکند. شما باید به صورت دستی از
git mergeبرای ادغام استفاده کنید. - نیاز به دسترسی به شبکه برای ارتباط با مخزن ریموت دارد.
- دریافت از مخازن خصوصی بدون احراز هویت امکانپذیر نیست.
گزینهها
- --all : دریافت از همه مخازن ریموت
- --prune : حذف شاخههای حذف شده ریموت
- --dry-run : نمایش تغییراتی که دریافت میشوند بدون انجام واقعی
- --quiet / -q : مخفی کردن خروجی
- --verbose / -v : نمایش جزئیات
- --depth
: محدود کردن دریافت به آخرین nکامیت (دریافت کمعمق) - --refmap
: مشخص کردن نام مخزن ریموت (پیشفرض 'origin'): مشخص کردن شاخه یا تگ مورد نظر برای دریافت
بهترین شیوهها
- از
git fetchبهطور منظم استفاده کنید تا از تغییرات ریموت آگاه باشید، مخصوصاً هنگام کار در محیطهای چند نفره. - از
--pruneبرای پاکسازی مراجع محلی و حذف شاخههای حذف شده ریموت استفاده کنید. - اگر تنها به تاریخچه اخیر نیاز دارید، از
--depthبرای دریافت کمعمق استفاده کنید تا در زمان و پهنای باند صرفهجویی شود.
اشتباهات رایج
- اجرای
git fetchبدون بررسی وضعیت مخزن محلی که ممکن است منجر به سردرگمی هنگام ادغام تغییرات شود. - استفاده غیرضروری از
git fetch --allمخصوصاً زمانی که تنها با یک مخزن ریموت کار میکنید، که منجر به دریافتهای غیر ضروری میشود. - فراموش کردن ادغام تغییرات دریافتی بعد از اجرای
git fetchکه ممکن است باعث از دست دادن بهروزرسانیها شود.
نمای کلی
دستور git fetch برای نگه داشتن مخزن محلی شما همگام با مخزن ریموت بسیار ضروری است. این دستور به شما این امکان را میدهد که تغییرات را بدون ایجاد تغییرات در دایرکتوری کاری خود دانلود کنید، که به شما این امکان را میدهد که به طور کامل کنترل کنید که چه زمانی و چگونه تغییرات را ادغام کنید.