Git 2.36 ได้รับการเผยแพร่แล้วและนี่คือข่าวของมัน

หลังจากสามเดือนของการพัฒนา ระบบเวอร์ชันใหม่เปิดตัวแล้ว ของการควบคุมซอร์สโค้ดแบบกระจาย «Git 2.36» หนึ่งในระบบควบคุมเวอร์ชันที่ได้รับความนิยม เชื่อถือได้ และมีประสิทธิภาพสูง ให้เครื่องมือการพัฒนาที่ไม่เป็นเชิงเส้นที่ยืดหยุ่นโดยอิงจากส้อมและการรวมของส้อม

เพื่อให้แน่ใจว่าประวัติมีความสมบูรณ์และต่อต้านการเปลี่ยนแปลง "ย้อนหลัง" แฮชโดยนัยของประวัติก่อนหน้าทั้งหมดจะถูกใช้ในแต่ละคอมมิต นอกจากนี้ยังสามารถตรวจสอบลายเซ็นดิจิทัลของผู้พัฒนาฉลากและการยืนยันแต่ละรายการได้

Git 2.36 คุณสมบัติใหม่ที่สำคัญ

เมื่อเทียบกับรุ่นก่อนหน้า การเปลี่ยนแปลง 717 ได้รับการยอมรับในเวอร์ชันใหม่ ซึ่งจัดทำขึ้นโดยมีส่วนร่วมของนักพัฒนา 96 คน โดย 26 คนเข้าร่วมในการพัฒนาเป็นครั้งแรก นวัตกรรมหลัก :

ตัวเลือก เพิ่ม “–remerge-diff” ในคำสั่ง “git log” และ “git show” เพื่อแสดงความแตกต่าง ระหว่างผลลัพธ์โดยรวมของการผสานและข้อมูลจริงที่แสดงในคอมมิตหลังจากประมวลผลคำสั่ง "ผสาน" ซึ่งช่วยให้คุณประเมินการเปลี่ยนแปลงที่เกิดขึ้นจากการแก้ไขข้อขัดแย้งในการผสานได้ คำสั่ง "git show" ปกติจะแยกการแก้ไขข้อขัดแย้งต่างๆ ด้วยการเยื้อง ทำให้การเปลี่ยนแปลงยากต่อการเข้าใจ

เมื่อใช้ตัวเลือก “–remerge-diff”ความแตกต่างระหว่างการแก้ไขข้อขัดแย้งจะไม่ถูกแยกออกสำหรับสาขาพาเรนต์แต่ละสาขา แต่จะแสดงความแตกต่างโดยรวมระหว่างไฟล์ที่มีข้อขัดแย้งในการผสานและไฟล์ที่แก้ไขข้อขัดแย้ง

การเปลี่ยนแปลงที่โดดเด่นอีกประการหนึ่งคือ ปรับปรุงความยืดหยุ่นในการปรับแต่งพฤติกรรม จากการล้างแคชดิสก์ผ่านการเรียกฟังก์ชัน fsync() พารามิเตอร์ core.fsyncObjectFiles ที่มีอยู่ก่อนหน้านี้ถูกแบ่งออกเป็นสองตัวแปรการกำหนดค่า core.fsync และ core.fsyncMethodซึ่งให้ความสามารถในการใช้ fsync ไม่เพียงแต่กับไฟล์อ็อบเจ็กต์ (.git/objects) แต่ยังรวมถึงโครงสร้าง git อื่นๆ เช่น refs ( .git /refs), reflog และไฟล์แพ็คเกจ

ผ่านตัวแปร core.fsync คุณสามารถระบุรายการโครงสร้าง Git ภายในได้หลังจากดำเนินการเขียน ซึ่ง fsync จะถูกเรียกเพิ่มเติม ตัวแปร core.fsyncเมธอด ให้คุณเลือกวิธีการล้างแคชได้ ตัวอย่างเช่น คุณสามารถเลือก fsync เพื่อใช้การเรียกระบบที่มีชื่อเดียวกัน หรือระบุการเขียนอย่างเดียวเพื่อใช้การเขียนแบบขี้เกียจที่รอดำเนินการ (การเขียนแคชของหน้าแบบสันหลังยาว)

เพื่อป้องกันจุดอ่อน ที่จัดการการแทนที่ไดเร็กทอรี .git โดยผู้ใช้รายอื่นบนพาร์ติชั่นที่แบ่งใช้ การตรวจสอบเจ้าของพื้นที่เก็บข้อมูลได้รับการเสริมความแข็งแกร่งแล้ว ตอนนี้อนุญาตให้รันเฉพาะคำสั่ง git ในไดเร็กทอรี ".git" ของตัวเองเท่านั้น หากไดเร็กทอรีที่เก็บเป็นเจ้าของโดยผู้ใช้รายอื่น ข้อผิดพลาดจะถูกสร้างขึ้นตามค่าดีฟอลต์ ลักษณะการทำงานนี้สามารถปิดใช้งานได้โดยใช้การตั้งค่าไดเรกทอรีที่ปลอดภัย

นอกจากนี้ยังมีการเน้นย้ำว่า เพิ่มตัวเลือก "–batch-command" เป็นคำสั่ง "git cat-file" ซึ่งมีวัตถุประสงค์เพื่อสร้างเนื้อหาต้นฉบับของวัตถุ Git เสริมคำสั่ง “–batch” และ “–batch-check” ก่อนหน้านี้มีให้พร้อมความสามารถในการเลือกประเภทเอาต์พุตที่ปรับเปลี่ยนได้ผ่าน "เนื้อหา » เพื่อแสดงเนื้อหาหรือ «ข้อมูล » เพื่อแสดงข้อมูลเกี่ยวกับวัตถุ นอกจากนี้ยังรองรับคำสั่ง "flush" เพื่อล้างบัฟเฟอร์เอาต์พุต

ในทางกลับกันก็เน้นว่า เพิ่มตัวเลือก “–oid-only” (“–object-only”) คำสั่ง "git ls-tree" ซึ่งออกแบบมาเพื่อแสดงรายการเนื้อหาของทรีของอ็อบเจ็กต์ ซึ่งเมื่อเปรียบเทียบกับ "–name -only" จะแสดงเฉพาะตัวระบุอ็อบเจ็กต์เพื่อทำให้การโทรจากสคริปต์ง่ายขึ้น นอกจากนี้ยังมีการใช้ตัวเลือก “–format” ซึ่งช่วยให้คุณกำหนดรูปแบบเอาต์พุตของคุณเองโดยรวมข้อมูลโหมด ประเภท ชื่อและขนาด

จากการเปลี่ยนแปลงอื่น ๆ ที่โดดเด่นกว่ารุ่นใหม่นี้:

  • ในคำสั่ง "git bisect run" มีการใช้คำจำกัดความของการไม่ตั้งค่าสัญญาณของไฟล์เรียกทำงานสำหรับสคริปต์และสร้างข้อผิดพลาดด้วยรหัส 126 หรือ 127 ในกรณีนี้ (ก่อนหน้านี้หากสคริปต์ไม่สามารถดำเนินการได้ บทวิจารณ์ทั้งหมด ทำเครื่องหมายว่ามีปัญหา)
  • เพิ่มตัวเลือก "–refetch" ในคำสั่ง "git fetch" เพื่อดึงข้อมูลวัตถุทั้งหมดโดยไม่ต้องแจ้งเนื้อหาอีกด้านหนึ่งที่มีอยู่ในระบบโลคัล ลักษณะการทำงานนี้สามารถเป็นประโยชน์สำหรับการกู้คืนสถานะหลังจากความล้มเหลวเมื่อมีความไม่แน่นอนเกี่ยวกับความสมบูรณ์ของข้อมูลภายในเครื่อง
  • คำสั่ง "git update-index", "git checkout-index", "git read-tree" และ "git clean" รองรับการทำดัชนีบางส่วน (ดัชนีกระจัดกระจาย) เพื่อปรับปรุงประสิทธิภาพและประหยัดพื้นที่ในที่เก็บที่ดำเนินการบางส่วน (จ่ายน้อย).
  • พฤติกรรมที่เปลี่ยนไปของคำสั่ง "git clone --filter=... --recurse-submodules" ซึ่งตอนนี้นำไปสู่การโคลนบางส่วนของโมดูลย่อย (ก่อนหน้านี้ เมื่อดำเนินการคำสั่งดังกล่าว ตัวกรองจะถูกนำไปใช้กับเนื้อหาหลักและโมดูลย่อยทั้งหมดเท่านั้น) โคลนโดยไม่คำนึงถึงตัวกรอง)
  • เพิ่มการรองรับการระบุตัวกรองสำหรับตำแหน่งที่เลือกของเนื้อหาในคำสั่ง "git bundle" ซึ่งคล้ายกับการดำเนินการโคลนบางส่วน
  • เพิ่มตัวเลือก “–recurse-submodules” ให้กับคำสั่ง “git branch” เพื่อสำรวจ submodules แบบเรียกซ้ำ
    Userdiff ได้เสนอไดรเวอร์ใหม่สำหรับภาษา Kotlin

ในที่สุด หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติม เกี่ยวกับ Git 2.36 เวอร์ชันใหม่นี้ คุณสามารถดูรายละเอียดใน ลิงค์ต่อไปนี้


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา