เมื่อเทียบกับรุ่นก่อนหน้า เวอร์ชันใหม่มีการเปลี่ยนแปลง 505 รายการ ซึ่งเตรียมโดยการมีส่วนร่วมของนักพัฒนา 77 คน โดย 26 คนมีส่วนร่วมในการพัฒนาเป็นครั้งแรก ขั้นพื้นฐาน
- คำสั่ง "git switch" และ "git Restore" แบบทดลองถูกนำมาใช้เพื่อแยกความสามารถ "git checkout" ที่เชื่อมโยงกันอย่างหลวมๆ เช่น การจัดการสาขา (การสลับและการสร้าง) และการกู้คืนไฟล์ในไดเร็กทอรีการทำงาน ("git checkout $commit - $filename") หรือทันทีในพื้นที่การแสดงละคร (“—การแสดงละคร” ไม่มีอะนาล็อกใน “การชำระเงิน git”) เป็นที่น่าสังเกตว่า "git Restore" ต่างจาก "git checkout" โดยจะลบไฟล์ที่ไม่ได้ติดตามออกจากไดเร็กทอรีที่กำลังกู้คืน ("--no-overlay" เป็นค่าเริ่มต้น)
- เพิ่มตัวเลือก “git Merge –quit” ซึ่งคล้ายกับ “-abort” จะหยุดกระบวนการรวมสาขา แต่ปล่อยให้ไดเร็กทอรีการทำงานไม่ถูกแตะต้อง ตัวเลือกนี้จะมีประโยชน์หากการเปลี่ยนแปลงบางอย่างที่เกิดขึ้นระหว่างการผสานด้วยตนเองนั้นดีกว่าที่จะออกเป็นการคอมมิตแยกต่างหาก
- คำสั่ง "git clone", "git fetch" และ "git push" ตอนนี้คำนึงถึงการมีอยู่ของคอมมิตในพื้นที่เก็บข้อมูลที่เชื่อมโยง (
ทางเลือก ); -
เพิ่ม ตัวเลือก “git Blaze —ignore-rev” และ “—ignore-revs-file” ช่วยให้คุณสามารถข้ามคอมมิตที่ทำการเปลี่ยนแปลงเล็กน้อยได้ (เช่น การแก้ไขการจัดรูปแบบ) - เพิ่มตัวเลือก "git cherry-pick —skip" เพื่อข้ามการคอมมิตที่ขัดแย้งกัน (อะนาล็อกที่จดจำของลำดับ "git reset && git cherry-pick —continue")
- เพิ่มการตั้งค่า status.aheadBehind ซึ่งแก้ไขตัวเลือก “สถานะ git -[no-]ahead-behind” อย่างถาวร
- ในเวอร์ชันนี้ "บันทึก git" ตามค่าเริ่มต้นจะคำนึงถึงการเปลี่ยนแปลงที่ทำโดย mailmap คล้ายกับที่ git shortlog ทำอยู่แล้ว
- การดำเนินการอัพเดตแคชทดลองของกราฟคอมมิต (core.commitGraph) ที่นำมาใช้ใน 2.18 ได้รับการเร่งความเร็วอย่างมาก ยังทำให้ git for-each-ref เร็วขึ้นเมื่อใช้หลายเทมเพลต และลดจำนวนการเรียกไปยัง auto-gc ใน "git fetch —multiple";
- ตอนนี้ "git Branch --list" จะแสดง HEAD ที่แยกออกมาที่จุดเริ่มต้นของรายการเสมอ โดยไม่คำนึงถึงสถานที่
ที่มา: opennet.ru