گٹ 2.35 سورس کنٹرول ریلیز

دو ماہ کی ترقی کے بعد، تقسیم شدہ سورس کنٹرول سسٹم Git 2.35 جاری کر دیا گیا ہے۔ Git سب سے زیادہ مقبول، قابل اعتماد اور اعلی کارکردگی والے ورژن کنٹرول سسٹمز میں سے ایک ہے، جو برانچنگ اور انضمام پر مبنی لچکدار غیر لکیری ترقیاتی ٹولز فراہم کرتا ہے۔ تاریخ کی سالمیت کو یقینی بنانے اور سابقہ ​​تبدیلیوں کے خلاف مزاحمت کو یقینی بنانے کے لیے، ہر کمٹ میں پوری پچھلی تاریخ کی مضمر ہیشنگ کا استعمال کیا جاتا ہے؛ ڈویلپرز کے ڈیجیٹل دستخطوں کے ساتھ انفرادی ٹیگز اور کمٹ کی تصدیق کرنا بھی ممکن ہے۔

پچھلی ریلیز کے مقابلے میں، نئے ورژن میں 494 تبدیلیاں شامل ہیں، جو 93 ڈویلپرز کی شرکت سے تیار کی گئی ہیں، جن میں سے 35 نے پہلی بار ترقی میں حصہ لیا۔ اہم اختراعات:

  • گٹ آبجیکٹ پر ڈیجیٹل طور پر دستخط کرنے کے لیے SSH کیز کے استعمال کے امکانات کو بڑھا دیا گیا ہے۔ کئی کلیدوں کی درستگی کی مدت کو محدود کرنے کے لیے، OpenSSH ہدایات "valid-fore" اور "valid-after" کے لیے تعاون شامل کیا گیا ہے، جس کے ساتھ آپ کسی ایک ڈویلپر کے ذریعے کلید کو گھمائے جانے کے بعد دستخطوں کے ساتھ درست کام کو یقینی بنا سکتے ہیں۔ اس سے پہلے، پرانی اور نئی کلید کے ذریعے دستخطوں کی علیحدگی میں مسئلہ تھا - اگر آپ پرانی کلید کو حذف کر دیتے ہیں، تو اس کے ساتھ کیے گئے دستخطوں کی تصدیق کرنا ناممکن ہو جائے گا، اور اگر آپ اسے چھوڑ دیں گے، تو یہ ممکن رہے گا۔ پرانی کلید کے ساتھ نئے دستخط بنائیں، جو پہلے ہی کسی اور کلید سے بدل چکی ہے۔ valid-before اور valid-after کا استعمال کرتے ہوئے آپ دستخط کے بننے کے وقت کی بنیاد پر کلیدوں کے دائرہ کار کو الگ کر سکتے ہیں۔
  • merge.conflictStyle سیٹنگ میں، جو آپ کو انضمام کے دوران تنازعات کے بارے میں معلومات ظاہر کرنے کے لیے موڈ کو منتخب کرنے کی اجازت دیتی ہے، "zdiff3" موڈ کے لیے سپورٹ ظاہر ہوا ہے، جو تنازعہ کے آغاز یا اختتام پر بیان کردہ تمام معیاری لائنوں کو تنازعات سے باہر منتقل کرتا ہے۔ علاقہ، جو معلومات کی زیادہ جامع پیشکش کی اجازت دیتا ہے۔
  • "--steged" موڈ کو "git stash" کمانڈ میں شامل کیا گیا ہے، جو آپ کو صرف انڈیکس میں شامل تبدیلیوں کو چھپانے کی اجازت دیتا ہے، مثال کے طور پر ایسی صورت حال میں جب آپ کو کچھ پیچیدہ تبدیلیوں کو عارضی طور پر ملتوی کرنے کی ضرورت ہو جو پہلے سے تیار ہے اسے شامل کریں اور کچھ دیر بعد باقی کے ساتھ نمٹ لیں۔ موڈ "گٹ کمٹ" کمانڈ سے ملتا جلتا ہے، صرف انڈیکس میں رکھی گئی تبدیلیوں کو لکھتا ہے، لیکن "گٹ اسٹیش - اسٹیجڈ" میں ایک نیا کمٹ بنانے کے بجائے، نتیجہ کو اسٹیش عارضی علاقے میں محفوظ کیا جاتا ہے۔ تبدیلیوں کی ضرورت پڑنے کے بعد، انہیں "git stash pop" کمانڈ کے ساتھ واپس کیا جا سکتا ہے۔
  • "گٹ لاگ" کمانڈ میں ایک نیا فارمیٹ اسپیفائر شامل کیا گیا ہے، "-format=%(describe)"، جو آپ کو "git log" کے آؤٹ پٹ کو "git describe" کمانڈ کے آؤٹ پٹ کے ساتھ جوڑنے کی اجازت دیتا ہے۔ "گٹ بیان" کے پیرامیٹرز براہ راست تصریح کار کے اندر بیان کیے گئے ہیں ("-format=%(describe:match= خارج کریں = )")، جس میں آپ مختصر ٹیگز بھی شامل کر سکتے ہیں ("-format=%(describe:tags= )") اور اشیاء کی شناخت کے لیے ہیکساڈیسیمل حروف کی تعداد کو ترتیب دیں (“--format=%(describe:abbrev= )")۔ مثال کے طور پر، آخری 8 کمٹ کی فہرست بنانے کے لیے جن کے ٹیگز میں ریلیز امیدوار کا ٹیگ نہیں ہے، اور 8-حروف کے شناخت کنندگان کی وضاحت کرتے ہوئے، آپ کمانڈ استعمال کر سکتے ہیں: $ git log -8 —format='%(describe:exclude=*-rc *,abbrev=13 )' v2.34.1-646-gaf4e5f569bc89 v2.34.1-644-g0330edb239c24 v2.33.1-641-g15f002812f858 v2.34.1-643-b2-b95d gb94bd056 bbc2.34.1f642 v56-95-gffb8f7d v2.34.1-203- gdf9c2980902adeb2.34.1 v640-3-g41b212a2.34.1
  • user.signingKey سیٹنگ اب نئی قسم کی کلیدوں کو سپورٹ کرتی ہے جو صرف "ssh-" قسم تک محدود نہیں ہیں اور کلید تک مکمل فائل کا راستہ بتاتی ہیں۔ متبادل اقسام کو "key::" سابقہ ​​استعمال کرتے ہوئے متعین کیا جاتا ہے، مثال کے طور پر ECDSA کیز کے لیے "key::ecdsa-sha2-nistp256"۔
  • "—ہسٹوگرام" موڈ میں تبدیلیوں کی فہرست بنانے کی رفتار، ساتھ ہی ساتھ "—color-moved-ws" آپشن کا استعمال کرتے ہوئے، جو کہ رنگ کے فرق میں خالی جگہوں کو نمایاں کرنے کو کنٹرول کرتا ہے، نمایاں طور پر بڑھا دیا گیا ہے۔
  • "گٹ جمپ" کمانڈ، جو Vim کو انضمام کے تنازعات کو پارس کرنے، اختلافات کو دیکھنے، یا تلاش کے آپریشن کو انجام دینے کے دوران فائل میں مطلوبہ پوزیشن پر صحیح چھلانگ کے بارے میں معلومات فراہم کرنے کے لیے استعمال کی جاتی ہے، انضمام کے تنازعات کو کم کرنے کی صلاحیت فراہم کرتی ہے۔ مثال کے طور پر، کارروائیوں کو صرف "foo" ڈائرکٹری تک محدود کرنے کے لیے، آپ "git jump merge - foo" کی وضاحت کر سکتے ہیں، اور "دستاویزات" ڈائریکٹری کو پروسیسنگ سے خارج کرنے کے لیے - "git jump merge - ':^documentation'"
  • اشیاء کے سائز کی نمائندگی کرنے والی اقدار کے لیے "غیر دستخط شدہ لانگ" کے بجائے "سائز_ٹی" قسم کے استعمال کو معیاری بنانے کے لیے کام کیا گیا ہے، جس کی وجہ سے 4 جی بی سے بڑی فائلوں کے ساتھ "کلین" اور "سمج" فلٹرز کا استعمال ممکن ہوا۔ تمام پلیٹ فارمز پر، بشمول LLP64 ڈیٹا ماڈل والے پلیٹ فارمز، قسم "غیر دستخط شدہ لمبی" جس میں 4 بائٹس تک محدود ہے۔
  • "-empty=(stop|drop|keep)" آپشن کو "git am" کمانڈ میں شامل کیا گیا ہے، جو آپ کو خالی پیغامات کے لیے رویے کو منتخب کرنے کی اجازت دیتا ہے جو میل باکس سے پیچ کو پارس کرتے وقت پیچ پر مشتمل نہیں ہوتا ہے۔ قدر "اسٹاپ" پورے پیچنگ آپریشن کو ختم کردے گی، "ڈراپ" ایک خالی پیچ کو چھوڑ دے گا، اور "رکھنا" ایک خالی کمٹ بنائے گا۔
  • "گٹ ری سیٹ"، "گٹ ڈف"، "گٹ بلیم"، "گٹ فیچ"، "گٹ پل" اور "گٹ ایل ایس فائلز" کے کمانڈز میں جزوی اشاریہ جات (اسپارس انڈیکس) کے لیے سپورٹ شامل کی گئی تاکہ کارکردگی کو بہتر بنایا جا سکے اور جگہ کی بچت کی جا سکے۔ ریپوزٹریز، جس میں کلوننگ کے جزوی آپریشنز (سپرس چیک آؤٹ) کیے جاتے ہیں۔
  • "git sparse-checkout init" کمانڈ کو فرسودہ کر دیا گیا ہے اور اسے "git sparse-checkout set" سے تبدیل کیا جانا چاہیے۔
  • ریپوزٹری میں برانچز اور ٹیگز جیسے حوالوں کو اسٹور کرنے کے لیے ایک نئے "ریفٹ ایبل" بیک اینڈ کا ابتدائی نفاذ شامل کیا گیا۔ نیا پسدید JGit پروجیکٹ کے ذریعہ استعمال کردہ بلاک اسٹوریج کا استعمال کرتا ہے اور بہت بڑی تعداد میں حوالہ جات کو ذخیرہ کرنے کے لئے موزوں ہے۔ بیک اینڈ ابھی تک ریف سسٹم کے ساتھ مربوط نہیں ہے اور عملی استعمال کے لیے تیار نہیں ہے۔
  • "git grep" کمانڈ کے رنگ پیلیٹ کو GNU grep یوٹیلیٹی سے ملنے کے لیے ایڈجسٹ کیا گیا ہے۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں