انتشار سیستم کنترل منبع توزیع شده Git 2.23

ارسال شده توسط انتشار یک سیستم کنترل منبع توزیع شده گیت 2.23.0. Git یکی از محبوب‌ترین، قابل اعتمادترین و با کارایی‌ترین سیستم‌های کنترل نسخه است که ابزار توسعه غیرخطی انعطاف‌پذیر مبتنی بر شاخه‌بندی و ادغام را ارائه می‌کند. برای اطمینان از یکپارچگی تاریخچه و مقاومت در برابر تغییرات عطف به ماسبق، از هش ضمنی کل تاریخچه قبلی در هر commit استفاده می شود و همچنین امکان تایید تگ ها و تعهدات فردی با امضای دیجیتالی توسعه دهندگان وجود دارد.

در مقایسه با نسخه قبلی، نسخه جدید شامل 505 تغییر بود که با مشارکت 77 توسعه دهنده تهیه شد که از این تعداد 26 نفر برای اولین بار در توسعه شرکت کردند. پایه ای نوآوری ها:

  • دستورات آزمایشی "git switch" و "git restore" برای جدا کردن قابلیت‌های "git checkout" با اتصال آزاد، مانند دستکاری شاخه (تغییر و ایجاد) و بازیابی فایل‌ها در فهرست کاری ("git checkout $commit - $filename") معرفی شده‌اند. یا بلافاصله در ناحیه استیجینگ ("—staging"، هیچ آنالوگ در "git checkout" ندارد). شایان ذکر است که برخلاف "git checkout"، "git restore" فایل های ردیابی نشده را از فهرست های در حال بازیابی حذف می کند (به طور پیش فرض "--no-overlay").
  • گزینه "git merge –quit" اضافه شده است که مشابه "-abort" روند ادغام شاخه ها را متوقف می کند، اما دایرکتوری کار را دست نخورده می گذارد. این گزینه می تواند مفید باشد اگر برخی از تغییرات ایجاد شده در طول ادغام دستی ترجیحاً به عنوان یک تعهد جداگانه صادر شود.
  • دستورات "git clone"، "git fetch" و "git push" اکنون وجود commit ها را در مخازن مرتبط در نظر می گیرند (جایگزین);
  • اضافه گزینه های "git blame —ignore-rev" و "-ignore-revs-file" به شما امکان می دهند از commit هایی که تغییرات جزئی ایجاد می کنند (مثلاً اصلاحات قالب بندی) صرف نظر کنید.
  • گزینه "git cherry-pick —skip" را برای رد شدن از یک commit متضاد اضافه کرد (یک آنالوگ حفظ شده از دنباله "git reset && git cherry-pick -continue").
  • تنظیمات status.aheadBehind را اضافه کرد که به طور دائم گزینه "git status -[no-]ahead-behind" را برطرف می کند.
  • از این نسخه، "git log" به طور پیش فرض تغییرات ایجاد شده توسط mailmap را در نظر می گیرد، مشابه آنچه git shortlog قبلا انجام می دهد.
  • عملیات به روز رسانی حافظه پنهان آزمایشی نمودار commit (core.commitGraph) معرفی شده در 2.18 به طور قابل توجهی تسریع شده است. همچنین هنگام استفاده از چندین الگو، git for-each-ref سریع‌تر شد و تعداد تماس‌ها به gc خودکار در "git fetch —multiple" کاهش یافت.
  • "git branch --list" در حال حاضر همیشه HEAD جدا شده را در همان ابتدای لیست، صرف نظر از منطقه، نشان می دهد.

منبع: opennet.ru

اضافه کردن نظر