ในระยะสั้น:การปฏิบัติที่ดีที่สุดคือสาขาออกผสานและมักจะเก็บไว้เสมอในการซิงค์
มีอนุสัญญาที่ชัดเจนเกี่ยวกับการเก็บรหัสของคุณในสาขาแยกจากสาขาหลัก:
- คุณกำลังจะทำการเปลี่ยนแปลงครั้งใหญ่หรือก่อกวน
- คุณกำลังจะทำการเปลี่ยนแปลงบางอย่างที่อาจไม่ได้ใช้
- คุณต้องการทดลองกับสิ่งที่คุณไม่แน่ใจว่าใช้ได้ผลหรือไม่
- เมื่อคุณถูกบอกให้แตกแขนงคนอื่นอาจมีสิ่งที่พวกเขาต้องทำในระดับปริญญาโท
กฎง่ายๆคือหลังจากแยกออกคุณควรซิงค์กับสาขาหลัก เพราะในที่สุดคุณจะต้องรวมมันกลับไปเป็นหลัก เพื่อหลีกเลี่ยงความขัดแย้งที่ซับซ้อนขนาดใหญ่เมื่อรวมกลับเข้าด้วยกันคุณควรกระทำบ่อยๆผสานบ่อยครั้ง
แนวทางปฏิบัติที่ดีที่จะปฏิบัติตาม
รูปแบบการแยก Git ที่ประสบความสำเร็จโดยVincent Driessenมีคำแนะนำที่ดี ในกรณีนี้แตกแขนงอุทธรณ์รูปแบบให้คุณพิจารณาขยายการไหลจะคอมไพล์ คนอื่น ๆ ได้แสดงความคิดเห็นเกี่ยวกับการไหล
แนวทางปฏิบัติในการติดแท็ก
ดังที่คุณทราบแล้ว Git ให้ตัวระบุรหัสเช่น 1.0-2-g1ab3183 แต่นั่นไม่ใช่แท็ก! การติดแท็กเสร็จสิ้นด้วยแท็ก git และแท็กที่สร้างขึ้นโดยใช้แท็ก git เป็นพื้นฐานสำหรับการระบุตัวระบุ git ที่อธิบายถึงการสร้าง กล่าวอีกนัยหนึ่งใน Git คุณไม่ต้องติดแท็กสาขา คุณกำลังติดแท็ก มันถูกต้องที่จะบอกว่าแท็กนั้นเป็นเพียงตัวชี้หมายเหตุประกอบเพื่อคอมมิชชัน
ให้ดูตัวอย่างการปฏิบัติที่แสดงให้เห็นว่ามัน
/ - [v1.0]
โวลต์
---. ---. --- .--- S ---.--- A <- master
\
\ -.--- B <- ทดสอบ
มากระทำ 'S' กันเถอะชี้ด้วยแท็ก 'v1.0' การกระทำนี้มีทั้งที่ 'อาจารย์' และสาขา 'ทดสอบ' ถ้าคุณเรียก " คอมไพล์อธิบาย " ที่ด้านบนของการกระทำ 'A' (ด้านบนของ 'โทสาขา) v1.0-2-g9c116e9
คุณจะได้รับสิ่งที่ต้องการ หากคุณเรียกใช้ "git อธิบาย" ด้านบนของการกระทำ 'A' (หรือที่เรียกว่า 'การทดสอบ' สาขา) คุณจะได้รับสิ่งที่ต้องการv1.0-2-g3f55e41
นั่นคือกรณีที่มีการกำหนดค่า git-อธิบายเริ่มต้น โปรดทราบว่าผลลัพธ์นี้จะแตกต่างกันเล็กน้อย v1.0-2-g9c116e9
หมายความว่าเราอยู่ที่กระทำกับ sortened SHA-1 ID ของ9c116e9
2 v1.0
กระทำหลังแท็ก ไม่มีแท็กv1.0-2
!
หากคุณต้องการให้แท็กของคุณปรากฏเฉพาะใน 'master' ของสาขาคุณสามารถสร้างคอมมิทใหม่ (เช่นอัปเดตเฉพาะข้อมูลเวอร์ชันเริ่มต้น / ทางเลือกใน GIT-VERSION-FILE) หลังจากการแยกสาขาของสาขา 'ทดสอบ' หากคุณติดแท็กในสาขา 'test' ด้วยเช่น 'v1.0.3` จะเห็นได้จาก' test 'เท่านั้น
อ้างอิง
ฉันพบบล็อกและโพสต์ที่มีประโยชน์มากมายเพื่อเรียนรู้จาก อย่างไรก็ตามสิ่งที่แสดงอย่างมืออาชีพนั้นเป็นของหายาก ดังนั้นฉันอยากจะแนะนำโพสต์ - รูปแบบการแยกสาขาของ Git ที่ประสบความสำเร็จโดย @nvie ฉันยืมภาพประกอบของเขา :)