คุณจะมี "ลำตัว" ตอนนี้เรียกว่า "หลัก" คุณจะมี "กิ่งไม้" ตอนนี้เรียกว่า "หัว" และคุณจะมี "แท็ก" ยังคงเรียกว่า "แท็ก" แต่พวกเขาจะไม่เป็นโฟลเดอร์พวกเขาจะเป็น " refs ", เลเบลเพื่อแก้ไขที่อยู่ในเนมสเปซแยกต่างหากภายในที่เก็บ
การโค่นล้มและ Git มีวิธีแตกต่างกันในการแยกทาง รูปแบบการโค่นล้มพื้นฐานคือการมีทรีไดเรกทอรีที่มีไทม์ไลน์แบบโกลบอลเดียวและถ้าคุณต้องการแยกสาขาคุณจะคัดลอกทรีย่อยในไดเรคทอรีอื่น
ในทางกลับกัน Git มีแผนผังไดเรกทอรีที่มีการแก้ไขซึ่งแต่ละรายการกำหนดว่าเป็นผู้ปกครอง แต่การแก้ไขแต่ละรายการสามารถมีผู้ปกครองหลายคน (รวม) และเด็กหลายคน (สาขา) ดังนั้นแทนที่จะมีไดเรกทอรีสำหรับสาขาคุณจะได้สร้างการแก้ไขอย่างอิสระ "refs" เป็นเพียงชื่อที่เกี่ยวข้องกับการแก้ไขล่าสุดสำหรับ "branch" ที่กำหนด
ความแตกต่างนี้เป็นพื้นฐานของการควบคุมเวอร์ชันแบบกระจาย Git (และระบบกระจายอื่น ๆ ) ไม่มีอำนาจส่วนกลางใด ๆ ในการเก็บประวัติเชิงเส้นดังนั้นการแก้ไขสามารถสร้างได้อย่างอิสระในที่เก็บหลายแห่งโดยไม่ต้องรู้กันและระบบจะต้องรองรับพวกมัน ปรากฎว่าลักษณะทั่วไปทำให้การแยกและการรวมทั่วไปง่ายขึ้นมาก
โปรดทราบว่าใน Git การแก้ไขไม่ได้อยู่ในสาขาใด ๆ พวกเขาเป็นเพียงและสาขามีพวกเขา แต่เมื่อสาขาถูกรวมเข้าด้วยกันหรือพิสูจน์ว่าเป็นตรอกซอกซอยคุณสามารถลบ "ref" ที่ชี้ไปและลืมมันไปเลย (ถ้าคุณทิ้งการทดลองเก่า ๆ พวกเขาจะถูกเก็บขยะด้วยgit gc
) สิ่งนี้จะช่วยให้คุณหลีกเลี่ยงการล้นในการทดลองแบบเก่าไม่มีใครจำสิ่งที่พวกเขากำลังทำอยู่ได้อีกต่อไป