ฉันจะไม่เก็บถาวรสาขา ใส่อีกวิธีหนึ่งเก็บสาขาตัวเอง สิ่งที่คุณต้องการคือเพื่อให้แน่ใจว่าข้อมูลที่เกี่ยวข้องกับนักโบราณคดีสามารถพบได้โดยวิธีการที่เชื่อถือได้ เชื่อถือได้เพราะพวกเขาช่วยพัฒนารายวันและไม่เพิ่มขั้นตอนพิเศษในกระบวนการทำงานให้เสร็จ นั่นคือฉันไม่เชื่อว่าผู้คนจะจำเพิ่มแท็กเมื่อพวกเขาทำกับสาขา
นี่คือสองขั้นตอนง่าย ๆ ที่จะช่วยโบราณคดีและการพัฒนาอย่างมาก
- เชื่อมโยงแต่ละสาขางานกับปัญหาที่เกี่ยวข้องในตัวติดตามปัญหาโดยใช้หลักการตั้งชื่อแบบง่าย
- ใช้
git merge --no-ffเพื่อผสานสาขางานเสมอ คุณต้องการรวมการกระทำและฟองประวัติศาสตร์แม้เพียงหนึ่งการกระทำ
แค่นั้นแหละ. ทำไม? เพราะในฐานะนักโบราณคดีรหัสฉันมักจะเริ่มต้นด้วยความต้องการที่จะรู้ว่างานที่ทำในสาขา บ่อยครั้งที่รหัสเสียงนี้ถูกเขียนขึ้นมาด้วยวิธีนี้ในเก้านรก! ฉันต้องเปลี่ยนรหัส แต่มีคุณสมบัติแปลก ๆ และฉันต้องไขปริศนาเพื่อหลีกเลี่ยงสิ่งที่สำคัญ
ขั้นตอนต่อไปคือgit blameการค้นหาการกระทำที่เกี่ยวข้องและหวังว่าข้อความบันทึกจะอธิบาย ถ้าฉันต้องขุดลึกลงไปฉันจะพบว่างานนั้นทำในสาขาและอ่านสาขาทั้งหมด (พร้อมด้วยคำอธิบายในตัวติดตามปัญหา)
สมมุติว่าให้git blameคะแนนกระทำ XYZ ฉันเปิดเบราว์เซอร์ประวัติ Git (gitk, GitX git log --decorate --graph, ฯลฯ ... ) ค้นหาคำสั่ง XYZ และดู ...
AA - BB - CC - DD - EE - FF - GG - II ...
\ /
QQ - UU - XYZ - JJ - MM
มีสาขาของฉัน! ฉันรู้ว่า QQ, UU, XYZ, JJ และ MM เป็นส่วนหนึ่งของสาขาเดียวกันและฉันควรดูรายละเอียดข้อความบันทึกของพวกเขา ฉันรู้ว่า GG จะทำการรวมและมีชื่อสาขาที่หวังว่าจะเชื่อมโยงกับปัญหาในตัวติดตาม
ถ้าด้วยเหตุผลบางอย่างฉันต้องการค้นหาสาขาเก่าที่ฉันสามารถเรียกใช้git logและค้นหาชื่อสาขาในการคอมมิชชันผสาน มันเร็วพอแม้ที่เก็บข้อมูลขนาดใหญ่มาก
นั่นคือสิ่งที่ฉันหมายถึงเมื่อฉันพูดว่าสาขาที่เก็บถาวรตัวเอง
การติดแท็กทุกสาขาเพิ่มงานที่ไม่จำเป็นในการทำให้สิ่งต่าง ๆ เสร็จสิ้น (เป็นกระบวนการที่สำคัญซึ่งควรมีความคล่องตัวอย่างโหดเหี้ยม) รวบรวมรายการแท็ก (ไม่พูดถึงประสิทธิภาพ แต่อ่านง่ายด้วยมนุษย์) ด้วยแท็กหลายร้อยรายการ แม้มีประโยชน์มากสำหรับโบราณคดี
git checkout [rev] file