Git ไม่ได้ออกแบบมาให้มากที่สุดเท่าวิวัฒน์
ลองดูด้วยตัวเอง โคลนที่เก็บข้อมูล git อย่างเป็นทางการเปิดในgitk
(หรือโปรแกรมดูบันทึกกราฟิก git ที่คุณชื่นชอบ) และดูการแก้ไขที่เก่าที่สุด
คุณจะเห็นว่าเดิมมีเพียงฟังก์ชั่นที่สำคัญมาก (ฐานข้อมูลวัตถุและดัชนี) ทุกสิ่งทุกอย่างที่ทำด้วยมือ อย่างไรก็ตามแกนขนาดเล็กนี้ถูกออกแบบมาให้ทำงานอัตโนมัติได้อย่างง่ายดายผ่านการเขียนสคริปต์เชลล์ ผู้ใช้ git รุ่นแรกเขียนเชลล์สคริปของตนเองเพื่อทำงานทั่วไปโดยอัตโนมัติ ทีละเล็กทีละน้อยสคริปต์เหล่านี้รวมอยู่ในการกระจาย git (ดูตัวอย่างต้น839a7a0 ) ทุกครั้งที่มีความต้องการใหม่สคริปต์ถูกดัดแปลงให้อนุญาต ต่อมาสคริปต์เหล่านี้หลายตัวจะถูกเขียนใหม่ใน C
การรวมกันของแกนกลางแบบมุมฉากที่สะอาด (ซึ่งคุณยังสามารถใช้งานได้โดยตรงหากคุณต้องการ) ด้วยชั้นบนที่เติบโตแบบออร์แกนิกมากกว่านั้นคือสิ่งที่ให้พลังของมัน แน่นอนว่ามันเป็นสิ่งที่ให้คำสั่งและตัวเลือกที่มีชื่อแปลก ๆ จำนวนมาก
การบีบอัดกราฟการกำจัดหมายเลขการแก้ไขการเน้นการแยกการ stashing การควบคุมระยะไกล ... มันมาจากไหน?
หลายสิ่งนั้นไม่ได้อยู่ที่นั่นในตอนแรก
ในขณะที่วัตถุแต่ละชิ้นถูกบีบอัดแยกกันและหลีกเลี่ยงการซ้ำซ้อนโดยการตั้งชื่อไฟล์ "แพ็ค" ซึ่งรับผิดชอบการบีบอัดสูงที่เราเคยเห็นในคอมไพล์ไม่มีอยู่จริง ปรัชญาในการเริ่มต้นคือ "พื้นที่ว่างในดิสก์ราคาถูก"
หากโดย "กราฟ" คุณหมายถึงผู้ดูกราฟิกชอบgitk
พวกเขาจะปรากฏในภายหลัง (AFAIK ซึ่งเป็นคนแรกgitk
) AFAIK, BitKeeper ยังมีโปรแกรมดูประวัติกราฟิก
การกำจัดหมายเลขรุ่นในแนวคิดหลักความเป็นจริงของคอมไพล์ของการใช้เนื้อหาการแก้ไขระบบแฟ้มในการจัดเก็บวัตถุส่วนใหญ่มาจากเสียงเดียว ในเวลานั้นเสียงโมโนช้า หากไม่ใช่ในกรณีนี้เป็นไปได้ว่าไลนัสอาจใช้มันแทนการสร้างคอมไพล์
การเน้นการแยกย่อยค่อนข้างหลีกเลี่ยงไม่ได้ในระบบการควบคุมเวอร์ชันที่กระจายเนื่องจากแต่ละโคลนนิ่งทำหน้าที่แยกสาขา
Stashing ( git stash
) คือ IIRC ค่อนข้างเร็ว reflogs ที่มันใช้ไม่ได้อยู่ที่นั่นในตอนแรก
แม้แต่รีโมตไม่ได้อยู่ที่นั่นในตอนแรก rsync
แต่เดิมคุณคัดลอกวัตถุด้วยมือโดยใช้
ทีละคนคุณสมบัติเหล่านี้ถูกเพิ่มโดยใครบางคน ไม่ใช่ทั้งหมดของพวกเขา - อาจจะไม่แม้แต่คนส่วนใหญ่ก็เขียนโดย Linus ทุกครั้งที่ทุกคนรู้สึกว่าไม่จำเป็นต้องใช้คอมไพล์ใครสามารถสร้างฟีเจอร์ใหม่บนเลเยอร์ "ประปา" แกนหลักของคอมไพล์และเสนอให้รวมเข้าด้วยกัน หากเป็นสิ่งที่ดีก็อาจเป็นที่ยอมรับเพิ่มความสามารถของคอมไพล์ (และความซับซ้อนของบรรทัดคำสั่ง) ให้ดียิ่งขึ้น