ورهايل ماخذ ڪنٽرول سسٽم جي ڇڏڻ Git 2.22

پاران پيش ڪيل ورهايل ماخذ ڪنٽرول سسٽم جي ڇڏڻ Git 2.22.0. Git ھڪڙو مقبول ترين، قابل اعتماد ۽ اعلي ڪارڪردگي وارو ورزن ڪنٽرول سسٽم آھي، جيڪو برانچنگ ۽ ضم ڪرڻ جي بنياد تي لچڪدار غير لڪير ترقياتي اوزار مهيا ڪري ٿو. تاريخ جي سالميت کي يقيني بڻائڻ ۽ اڳڀرائي واري تبديلين جي مزاحمت کي يقيني بڻائڻ لاءِ، هر ڪمٽمينٽ ۾ پوري پوئين تاريخ جي واضح هيشنگ استعمال ڪئي ويندي آهي، ۽ اهو پڻ ممڪن آهي ته انفرادي ٽيگ ۽ ڪميٽ کي ڊولپرز جي ڊجيٽل دستخطن سان تصديق ڪرڻ.

پوئين رليز جي مقابلي ۾، نئين ورزن ۾ 745 تبديليون شامل آهن، 74 ڊولپرز جي شموليت سان تيار ڪيل، جن مان 18 پهريون ڀيرو ترقي ۾ حصو ورتو. مکيه جدت:

  • رليز 1.18 کان موجود، نئون "git rebase --rebase-merges" ڪمٽ ريبيس موڊ پراڻي "--preserve-merges" آپشن کي تبديل ڪري ٿو، جيڪو هاڻي ختم ٿي چڪو آهي. "git rebase" آپريشن کي ڪمٽ جي هڪ سيريز کي نئين بيس ڪمٽ سان تبديل ڪرڻ لاءِ استعمال ڪيو ويندو آهي، مثال طور، ماسٽر برانچ جي موجوده حالت ۾ هڪ نئين خاصيت کي ترقي ڪندي هڪ الڳ برانچ کي ريبيس ڪرڻ لاءِ، جنهن ۾ برانچ کان پوءِ شامل ڪيل اصلاحات شامل آهن:

    o — o — o (منهنجي خصوصيت)

    /

    او - او - او - او - او (ماسٽر)

    o — o — o (منهنجي خصوصيت)

    /

    او - او - او - او - او (ماسٽر)

    اڳي، "--preserve-merges" آپشن کي منتقل ٿيل برانچ ۾ برانچ جي جوڙجڪ کي محفوظ ڪرڻ لاءِ استعمال ڪري سگهجي ٿو. جڏهن انٽرايڪٽو طور تي هلايو ويندو هو (git rebase -i --preserve-merges)، هي آپشن ڪمٽ هسٽري کي ايڊٽ ڪرڻ جي اجازت ڏيندو هو پر ريپوزٽري اسٽرڪچر جي مڪمل تحفظ جي ضمانت نه ڏيندو هو. نئون "--rebase-merges" آپشن منتقل ٿيل برانچ ۾ برانچ جي جوڙجڪ کي محفوظ ڪري ٿو جڏهن ته انٽرايڪٽو آپريشنز جي مڪمل رينج مهيا ڪري ٿو، جنهن ۾ ڪمٽ کي حذف ڪرڻ، ٻيهر ترتيب ڏيڻ، ۽ نالو تبديل ڪرڻ شامل آهن.

    مثال طور، "--rebase-merges" اها ڳالهه جي اجازت ڏئي هڪ الڳ برانچ مان ڪميٽ کي نئين ماسٽر برانچ ۾ ريمرج ڪريو، جڏهن ته لڏپلاڻ واري برانچ ۾ برانچنگ اسٽرڪچر کي محفوظ رکو، ۽ فوري طور تي ڪميٽ نوٽس ۾ ڪجهه تبديليون ڪريو.

  • "git branch new A...B" ۽ "git checkout -b new A...B" constructs استعمال ڪندي ٻن ٻين شاخن جي ضم بنياد (مرج بيس، هڪ عام اينسسٽر سان ڳنڍڻ) جي نتيجي جي بنياد تي هڪ نئين برانچ ٺاهڻ لاءِ سپورٽ شامل ڪئي وئي آهي، جتي "A...B" جو مطلب ٻن مخصوص ڪمٽس جي وچ ۾ ضم بنياد کي طئي ڪرڻ آهي، ساڳي طرح ڪيئن "git checkout A...B" HEAD کي بيس ڪمٽ ڏانهن منتقل ڪري ٿو ۽ "diff A...B" ڪمٽ "B" ۽ ان جي عام اينسسٽر جي وچ ۾ commit "A" سان تبديليون ڏيکاري ٿو.

    مثال طور، جڏهن هڪ الڳ برانچ، منهنجي-فيچر تي ڪم ڪري رهيا آهيو، ته هي فيچر استعمال ڪري سگهجي ٿو جڏهن توهان کي ڪنهن ٻئي برانچ کان شروع ڪرڻ جي ضرورت هجي، جهڙوڪ ماسٽر برانچ ۾ ساڳي جاءِ جتان منهنجي-فيچر چيڪ ڪيو ويو هو. اڳي، ان لاءِ دستي طور تي چينج لاگ جي جانچ ڪرڻ جي ضرورت هئي، جيڪا وڏي تبديلي جي تاريخ سان ڊيل ڪرڻ وقت تڪليف ڏيندڙ هئي، پوءِ ماسٽر ۽ منهنجي-فيچر برانچن جي وچ ۾ مرج بيس هيش کي ڳڻڻ لاءِ "git merge-base master my-feature" هلائڻ ۽ عام ابن ڏاڏن جي نسبت هڪ نئين برانچ ٺاهڻ: "git branch my-other-feature hash." Git 2.22 ۾، توهان ٻن ٻين شاخن جي مرج بيس جي نسبت هڪ برانچ ٺاهڻ لاءِ "git branch my-other-feature A...B" نحو استعمال ڪري سگهو ٿا.

  • چيڪ آئوٽ آپريشن دوران حاصل ڪيل برانچ جو نالو ڏيکارڻ لاءِ "گٽ برانچ --شو-ڪرنٽ" آپشن شامل ڪيو ويو؛
  • "git checkout --no-overlay --dir" آپشن شامل ڪيو ويو آهي. هي آپشن توهان کي چيڪ آئوٽ آپريشن دوران ماسٽر برانچ جي حالت سان ملائڻ لاءِ dir ڊاريڪٽري جي مواد کي تبديل ڪرڻ جي اجازت ڏئي ٿو. مثال طور، جيڪڏهن dir ڊاريڪٽري جي مقامي ڪاپي ۾ هڪ فائل آهي جيڪا ماسٽر برانچ ۾ موجود ناهي، ته پوءِ ڊفالٽ طور تي اهو ڇڏي ويندو جڏهن "git checkout master --dir" تي عمل ڪيو ويندو، ۽ جيڪڏهن "--no-overlay" آپشن بيان ڪيو ويندو، ته اهو هٽايو ويندو.
  • "git diff" ڪمانڊ اختيارن کي پارس ڪرڻ لاءِ هڪ عالمگير API استعمال ڪري ٿو، جيڪو ٻين گٽ يوٽيلٽيز سان گڏ متحد آپشن هينڊلنگ جي اجازت ڏئي ٿو. مثال طور، "git diff" ۾، هاڻي سڀني اختيارن جا پنهنجا هم منصب آهن ("--function-context" ۽ "--no-function-context")؛
  • گٽ لاگ آئوٽ پُٽ ۾ ڪمٽس سان ڳنڍيل وڌايل ٽيگ کي فلٽر ڪرڻ جي صلاحيت شامل ڪئي وئي ("ٽريلر" - اضافي معلوماتي جھنڊا جهڙوڪ "سائنڊ آف-بائي" ۽ "ڪو-اٿورڊ-بائي"). ٽيگ کي ڪي ۽ ويليو ٻنهي ذريعي فلٽر ڪري سگهجي ٿو، مثال طور:
    "گٽ لاگ --pretty="%(ٽريلر:key=نظرثاني ٿيل، صرف قدر)";
  • هڪ نئون ٽريڪنگ ميڪانيزم، ٽريس 2، شامل ڪيو ويو آهي، جيڪو وڌيڪ لچڪدار ۽ منظم آئوٽ پُٽ فارميٽ پيش ڪري ٿو. ٽريس 2 توهان کي وڌيڪ تفصيلي تجزيو ۽ ڊيبگنگ لاءِ عملدرآمد ٿيل آپريشنز ۽ ڪارڪردگي ڊيٽا بابت ٽيلي ميٽري گڏ ڪرڻ جي اجازت ڏئي ٿو (هينڊلر صارف پاران تفويض ڪيل آهي، ڪو به ڊيٽا ٻاهرين طور تي نه موڪليو ويو آهي)؛
  • "گٽ بائيسٽ" رپورٽ کي وڌيڪ پڙهڻ لائق بڻايو ويو آهي، هاڻي وڌيڪ واضح طور تي مشڪلاتي ڪمٽس کي اجاگر ڪري ٿو ۽ هر فائل لاءِ تبديلين تي خلاصو انگ اکر ڏيکاري ٿو (تبديل ٿيل لائينن جي تعداد جي سطح تي)؛
  • ڊاريڪٽري جي نالي جي سڃاڻپ جي هيورسٽڪس کي غلط نالي جي جھنڊن کي روڪڻ لاءِ ٻيهر ڪم ڪيو ويو آهي. جيڪڏهن شڪ ۾، اهڙين ڊائريڪٽرين کي هاڻي تڪراري طور نشان لڳايو ويو آهي.
  • هاڻي هڪ ڊيڄاريندڙ ڏيکاري ويندي آهي جڏهن ڪنهن ٻئي ٽيگ تي ٽيگ سيٽ ڪرڻ جي ڪوشش ڪئي ويندي آهي، جيڪو عام طور تي غلطي سان ڪيو ويندو آهي ۽ ان جي نتيجي ۾ ٽيگ کي غلط ڪمٽ تي سيٽ ڪري سگهجي ٿو (مثال طور، "git tag -f -m "updated message" my-tag1 my-tag2" جهڙي تعمير جي نتيجي ۾ پراڻي ٽيگ تي ٽيگ ٺاهيو ويندو، جڏهن ته ڊولپر توقع ڪئي هئي ته نئون ٽيگ پراڻي ٽيگ پاران اشارو ڪيل ڪمٽ تي سيٽ ڪيو ويندو)؛
  • ريپوزٽريز لاءِ بٽ ميپس (آن-ڊسڪ "ريچ ايبلٽي بٽ ميپس") جي پيداوار کي فعال ڪيو ويو آهي. اهي بٽ ميپس هر ڪمٽ لاءِ موجود شين جي سيٽن بابت ڊيٽا اسٽور ڪن ٿا ۽ بنيادي شئي جي موجودگي جي تڪڙي سڃاڻپ جي اجازت ڏين ٿا. هي structure گٽ فيچ آپريشنز لاءِ گهربل وقت کي گهٽائي ٿو.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو