ระบบควบคุมเวอร์ชันเวอร์ชัน ใหม่ Git 2.26.0 พร้อมใช้งานแล้วโดยมาพร้อมกับคุณสมบัติใหม่การสนับสนุนแบบทดลอง และที่สำคัญที่สุดคือการปรับปรุงประสิทธิภาพ สำหรับผู้ที่ไม่คุ้นเคยกับ Git มันเป็นหนึ่งในระบบควบคุมเวอร์ชันที่ได้รับความนิยม เชื่อถือได้ และมีประสิทธิภาพสูงที่สุดโดยมีเครื่องมือพัฒนาที่ไม่เป็นเชิงเส้นและยืดหยุ่น ซึ่งใช้การสร้างสาขาและการรวมสาขาเป็นหลัก
เพื่อให้มั่นใจในความถูกต้องของประวัติและป้องกันการเปลี่ยนแปลงย้อนหลัง จึง มีการใช้ แฮชโดยปริยายของประวัติทั้งหมดก่อนหน้าในทุกการคอมมิต นอกจากนี้ยังสามารถลงนามดิจิทัลให้กับนักพัฒนาของแท็กและการคอมมิตแต่ละรายการได้อีกด้วย
เมื่อเทียบกับเวอร์ชันก่อนหน้าเวอร์ชันใหม่นี้มีการเปลี่ยนแปลง 504 รายการโดยมีนักพัฒนา 64 คนเข้าร่วม ซึ่ง 12 คนในจำนวนนี้เข้าร่วมการพัฒนาเป็นครั้งแรก
Git 2.26.0 คุณสมบัติใหม่ที่สำคัญ
เวอร์ชันใหม่นี้เปลี่ยนค่าเริ่มต้นไปใช้โปรโตคอลการสื่อสาร Git เวอร์ชัน 2ซึ่งใช้เมื่อเชื่อมต่อไคลเอนต์จากระยะไกลไปยังเซิร์ฟเวอร์ Git เวอร์ชัน 2 โดดเด่นตรงที่สามารถกรองสาขาและแท็กบนฝั่งเซิร์ฟเวอร์ได้ โดยส่งคืนรายการลิงก์ที่กระชับไปยังไคลเอนต์
นวัตกรรมที่สำคัญอีกประการหนึ่งคือความสามารถในการเพิ่มคุณสมบัติใหม่ให้กับโปรโตคอลเมื่อมีคุณสมบัติใหม่ๆ พร้อมใช้งานในชุดเครื่องมือ โค้ดฝั่งไคลเอ็นต์ยังคงเข้ากันได้กับโปรโตคอลเวอร์ชันก่อนหน้าและสามารถทำงานต่อไปได้ทั้งกับเซิร์ฟเวอร์ใหม่และเก่า โดยจะเปลี่ยนกลับไปใช้เวอร์ชันแรกโดยอัตโนมัติหากเซิร์ฟเวอร์ไม่รองรับเวอร์ชันที่สอง
ทางเลือก "- แสดงขอบเขต« ถูกเพิ่มเข้าไปในคำสั่ง «git config", อะไร ลดความซับซ้อนในการระบุสถานที่ที่กำหนดการกำหนดค่าบางอย่าง
Git ช่วยให้คุณกำหนดการกำหนดค่าในที่ต่างๆ: ในที่เก็บ (.git / info / config) ในไดเรกทอรีของผู้ใช้ (~ / .gitconfig) ในไฟล์คอนฟิกูเรชันทั้งระบบ (/ etc / gitconfig) ตลอดจนตัวเลือกบรรทัดคำสั่งและตัวแปรสภาพแวดล้อม
เมื่อเรียกใช้คำสั่ง ` git config`การจะเข้าใจว่าการตั้งค่าที่ต้องการนั้นถูกกำหนดไว้ที่ใดนั้นค่อนข้างยาก ตัวเลือก ` --show-origin`เคยมีมาเพื่อแก้ปัญหานี้ แต่จะแสดงเฉพาะเส้นทางไปยังไฟล์ที่กำหนดค่าไว้ ซึ่งมีประโยชน์หากคุณต้องการแก้ไขไฟล์ แต่จะไม่ช่วยอะไรหากคุณต้องการเปลี่ยนค่าผ่าน `git config` โดยใช้ตัวเลือก `--system`, `--global` หรือ `--local`
ในทางกลับกัน การประกาศเวอร์ชันใหม่นี้ระบุว่าการขยายการสนับสนุนเชิงทดลองสำหรับโคลนบางส่วนยังคงดำเนินต่อไปซึ่งอนุญาตให้ถ่ายโอนข้อมูลเพียงบางส่วนและทำงานกับสำเนาที่ไม่สมบูรณ์ของคลังข้อมูลได้
เวอร์ชันใหม่นี้เพิ่มคำสั่งใหม่"git sparse-checkout add"ซึ่งช่วยให้คุณสามารถเพิ่มไดเร็กทอรีแยกต่างหากเพื่อใช้ การดำเนินการ " checkout " กับส่วนหนึ่งของ working tree เท่านั้น แทนที่จะแสดงรายการไดเร็กทอรีทั้งหมดพร้อมกันโดยใช้คำสั่ง " git sparse-checkout set "
ประสิทธิภาพของ คำสั่ง " git grep " ซึ่งใช้ในการค้นหาทั้งเนื้อหาจริงของที่เก็บข้อมูลและการแก้ไขในอดีตนั้นดีขึ้นอย่างเห็นได้ชัด
เพื่อเพิ่มความเร็วในการค้นหา การสแกนโครงสร้าง ไฟล์ โดยใช้หลายเธรด (" git grep --threads ") สามารถทำได้ แต่การค้นหาการแก้ไขในอดีตจะใช้เธรดเดียว ข้อจำกัดนี้ได้ถูกยกเลิกแล้วเนื่องจาก การใช้งานความสามารถในการประมวลผลแบบขนาน สำหรับการอ่านข้อมูลจากที่เก็บข้อมูลแบบอ็อบเจ็กต์
โดยค่าเริ่มต้น จำนวนเธรดจะถูกตั้งค่าให้เท่ากับจำนวนคอร์ของซีพียู ซึ่งในกรณีส่วนใหญ่ไม่จำเป็นต้องกำหนดค่าตัวเลือก " --threads " อย่างชัดเจนอีกต่อไป
เพิ่มการรองรับการเติมข้อความอัตโนมัติสำหรับอินพุตคำสั่งย่อยเส้นทาง ลิงก์ และอาร์กิวเมนต์อื่นๆ ของคำสั่ง "git worktree" ซึ่งช่วยให้สามารถทำงานกับสำเนาการทำงานหลายชุดของที่เก็บข้อมูลได้
นอกจากนี้ เรายังสามารถพบสคริปต์ fsmonitor-watchman เวอร์ชันใหม่ซึ่งมีการผสานรวมกับกลไก Facebook Watchmanเพื่อเพิ่มความเร็วในการติดตามการเปลี่ยนแปลงไฟล์และการปรากฏของไฟล์ใหม่ หลังจากอัปเดต Git แล้ว คุณต้องแทนที่ hook ใน repository ด้วย
หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการเปิดตัวเวอร์ชันใหม่นี้ คุณสามารถอ่านบทความต้นฉบับได้ที่ลิงก์ต่อไปนี้