git 2.7 (Q4 2015) จะแนะนำการจัดเรียงสาขาโดยใช้โดยตรงgit branch: 
ดูการกระทำ aa3bc55 , กระทำ aedcb7d , กระทำ 1511b22 ,กระทำ f65f139 , ... (23 ก.ย. 2558), กระทำ aedcb7d , กระทำ 1511b22 , กระทำ ca41799 (24 ก.ย. 2558), และกระทำ f65f139 ... (23 กันยายน 2015) โดยคาร์ทิคยัก (KarthikNayak ) 
(ผสานโดยJunio C Hamano - gitster-ในการกระทำ 7f11b48 , 15 ต.ค. 2558)  
โดยเฉพาะอย่างยิ่งกระทำ aedcb7d :
  branch.c: ใช้ ' ref-filter' APIs
ทำAPI ' branch.c' ใช้ ' ref-filter' เพื่อทำซ้ำผ่านการเรียงลำดับอ้างอิง สิ่งนี้จะลบรหัสส่วนใหญ่ที่ใช้ใน ' branch.c' แทนที่ด้วยการเรียกไปยังref-filterไลบรารี ''
มันเพิ่มตัวเลือก--sort=<key> :
  จัดเรียงตามคีย์ที่กำหนด 
  คำนำหน้า-เพื่อเรียงลำดับจากมากไปน้อยของค่า
  
  คุณสามารถใช้--sort=<key>ตัวเลือกได้หลายครั้งซึ่งในกรณีนี้คีย์สุดท้ายจะกลายเป็นคีย์หลัก
  
  ปุ่มที่รองรับนั้นเหมือนกับgit for-each-refปุ่มระบบ 
  เรียงลำดับค่าเริ่มต้นเป็นเรียงตามชื่อเต็ม (รวมถึงrefs/...คำนำหน้า) รายการนี้แสดง HEAD ที่แยกออก (ถ้ามี) ก่อนจากนั้นจึงแยกสาขาท้องถิ่นและสาขาติดตามระยะไกล
ที่นี่:
git branch --sort=-committerdate 
หรือ (ดูด้านล่างด้วย Git 2.19)
# if you are sure to /always/ want to see branches ordered by commits:
git config --global branch.sort -committerdate
git branch
ดูเพิ่มเติมกระทำ 9e46833 (30 ตุลาคม 2015) โดยคาร์ทิคยัก (KarthikNayak ) 
ช่วยเหลือโดย: Junio C Hamano ( gitster) )
(รวมโดยJunio C Hamano - gitster-ในการกระทำ 415095f , 3 พฤศจิกายน 2015)  
  เมื่อเรียงตามค่าตัวเลข (เช่น--sort=objectsize) จะไม่มีการเปรียบเทียบทางเลือกเมื่อทั้งสองอ้างอิงมีค่าเดียวกัน สิ่งนี้สามารถทำให้เกิดผลลัพธ์ที่ไม่คาดคิด (เช่นลำดับของการอ้างอิงรายการที่มีค่าเท่ากันไม่สามารถกำหนดล่วงหน้าได้) ดังที่โจฮันเนสซิกท์ชี้ ( $ gmane / 280117 )
  
  ดังนั้นfallback ที่จะเปรียบเทียบตัวอักษรบนพื้นฐาน refname เมื่อใดก็ตามที่เกณฑ์อื่น ๆ จะมีค่าเท่ากับ
$ git branch --sort=objectsize
*  (HEAD detached from fromtag)
      branch-two
      branch-one
      master
ด้วย Git 2.19 การเรียงลำดับสามารถตั้งค่าได้ตามค่าเริ่มต้น 
git branchสนับสนุนการตั้งค่าbranch.sortเช่นเดียวกับที่ได้มีการกำหนดค่าgit tag 
ดูกระทำ 560ae1c (16 สิงหาคม 2018) โดยซามูเอล Maftoul ( ``) (ผสานโดยJunio C Hamano - -tag.sort
gitsterในการกระทำ d89db6f , 27 สิงหาคม 2018)  
branch.sort:
  
  ตัวแปรนี้ควบคุมการเรียงลำดับของสาขาเมื่อแสดงโดย git-branchตัวแปรนี้จะควบคุมการสั่งซื้อการจัดเรียงของสาขาเมื่อแสดงโดย
  หากไม่มี--sort=<value>ตัวเลือก "" ค่าของตัวแปรนี้จะถูกใช้เป็นค่าเริ่มต้น
git branch -r --sort=objectsizeการแสดงรายชื่อสาขาที่ห่างไกลการใช้งาน การ-rตั้งค่าสถานะทำให้รายการสาขาระยะไกลแทนสาขาท้องถิ่น
ด้วย Git 2.27 (Q2 2020), "git branchfor-each-refตัวแปร " และอื่น ๆ " " ยอมรับ--sort=<key>ตัวเลือกหลายตัวในลำดับที่เพิ่มขึ้นของลำดับความสำคัญ แต่มันมีข้อผิดพลาดเล็กน้อยเกี่ยวกับการ--ignore-caseจัดการ "" และผูกกับ refname ซึ่งได้รับการแก้ไขแล้ว
ดูกระทำ 7c5045f , กระทำ 76f9e56 (3 พฤษภาคม 2020) โดยเจฟฟ์คิง (peff ) 
(ผสานโดยJunio C Hamano - gitster-ในการกระทำ 6de1630 , 08 พฤษภาคม 2020)  
  ref-filter: ใช้การจัดเรียง refname ทางเลือกหลังเฉพาะทุกประเภทผู้ใช้
  
  ลงชื่อออกโดย: Jeff King
  
  กระทำ9e468334b4 (" ref-filter: ทางเลือกในการเปรียบเทียบตามตัวอักษร", 2015-10-30, Git v2.7.0-rc0 - ผสานอยู่ในชุดที่ 10 ) สอนการจัดเรียงเตะกรองเพื่อ fallback เพื่อ refnames เปรียบเทียบ 
  แต่ทำในระดับที่ไม่ถูกต้องแทนที่ผลการเปรียบเทียบสำหรับ--sortคีย์เดียวจากผู้ใช้" " แทนที่จะใช้คีย์การเรียงลำดับทั้งหมดหมดแล้ว
  
  สิ่งนี้ทำงานอย่างถูกต้องสำหรับ "--sortตัวเลือก " แต่ไม่ใช่สำหรับหลาย ๆ ตัว 
  เราจะทำลายความสัมพันธ์ใด ๆ ในคีย์แรกด้วย refname และไม่เคยประเมินคีย์ที่สองเลย
  
  เพื่อให้เรื่องน่าสนใจยิ่งขึ้นเราใช้บางครั้งทางเลือกนี้! 
  สำหรับเขตข้อมูลเช่น " taggeremail" ซึ่งต้องการการเปรียบเทียบสตริงเราจะส่งคืนผลลัพธ์อย่างแท้จริงstrcmp()แม้ว่าจะเป็น 0 
  แต่สำหรับvalueฟิลด์ตัวเลข " " เช่น "taggerdate " เราได้ใช้การย้อนกลับ และนั่นคือสาเหตุที่การทดสอบหลายประเภทของเราพลาดสิ่งนี้: มันใช้taggeremailเป็นการเปรียบเทียบหลัก
  
  ดังนั้นเริ่มต้นด้วยการเพิ่มการทดสอบที่เข้มงวดมากขึ้น เราจะมีชุดคำมั่นสัญญาที่แสดงชุดอีเมลแท็กเกอร์วันที่และชื่อซ้ำสองชุด จากนั้นเราสามารถยืนยันได้ว่าการเรียงลำดับของเราถูกนำไปใช้กับลำดับความสำคัญที่ถูกต้องและเราจะกดทั้งตัวเปรียบเทียบสตริงและค่า
  
  นั่นแสดงข้อผิดพลาดและการแก้ไขนั้นง่าย: เลื่อนทางเลือกไปด้านนอก compare_refs()ฟังก์ชั่นหลังจากที่ref_sortingปุ่มทั้งหมดหมดลง
  
  โปรดทราบว่าในฟังก์ชั่นด้านนอกเราไม่มี"ignore_case"ธงเพราะมันเป็นส่วนหนึ่งของแต่ละref_sortingองค์ประกอบ เป็นที่ถกเถียงกันว่าควรเลือกทางเลือกอย่างไรเนื่องจากเราไม่ได้ใช้กุญแจของผู้ใช้ในการจับคู่ 
  แต่จนถึงขณะนี้เราได้พยายามเคารพธงนั้นดังนั้นสิ่งที่รุกรานน้อยที่สุดคือพยายามทำเช่นนั้นต่อไป 
  เนื่องจากผู้เรียกทั้งหมดในรหัสปัจจุบันตั้งค่าสถานะสำหรับคีย์ทั้งหมดหรือไม่มีเลยเราจึงสามารถดึงค่าสถานะจากคีย์แรก ในโลกสมมุติที่ผู้ใช้สามารถพลิกตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ของคีย์แยกกันเราอาจต้องการขยายรหัสเพื่อแยกความแตกต่างระหว่างตัวพิมพ์ใหญ่กับผ้าห่ม " --ignore-case"