เป็นการดีที่จะมีสาขาระยะไกลสำหรับนักพัฒนาแต่ละคนหรือไม่?


11

ถือว่าเป็นแนวปฏิบัติที่ดีที่จะมีสาขาระยะไกลสำหรับนักพัฒนาแต่ละคนในโครงการหรือไม่

เรากำลังใช้ Git กับสาขาดังต่อไปนี้:

  • เจ้านาย
  • ปล่อย
  • พัฒนา

หากนักพัฒนาซอฟต์แวร์แต่ละคนมีสาขาของตนเองพวกเขาสามารถกดรหัสลงในสาขาของตนเองและผู้อื่นสามารถรวมการเปลี่ยนแปลงเหล่านี้เข้ากับสาขาของตนเอง


1
เตือนฉันพื้นที่ทำงาน Accurev ยกเว้นว่าไม่ได้เชื่อมโยงกับที่อยู่ MAC ของเครื่องใดเครื่องหนึ่ง ฉันชอบมัน.
แบรนดอน

เป็นไปได้ที่ซ้ำกันของถึงสาขาหรือไม่กับสาขา?
ริ้น

1
เหตุใด nat จึงมีสาขาที่ไม่ซ้ำกันสำหรับการเพิ่มคุณสมบัติใหม่แต่ละรายการ
Martin York

@Loki ใช่ .. ความคิดที่ดี ..
balanv

คำตอบ:


4

No! เป็นวิธีปฏิบัติที่ดีที่จะมีเนมสเปซสาขาระยะไกลสำหรับผู้พัฒนาแต่ละราย

สาขาเดียวมักจะไม่เพียงพอดังนั้นนักพัฒนาอาจจบลงด้วยการกรอกลับซ้ำอีกครั้งหรือไม่ได้ประโยชน์มากนัก คุณค่อนข้างอยากจะบอกว่านักพัฒนาสามารถผลักดันสิ่งที่พวกเขาต้องการภายใต้their.name /พวกเขาสามารถใช้มันเพื่อเผยแพร่เวอร์ชันพรีวิวสำหรับคนอื่น ๆ ให้เวอร์ชันสำหรับคนอื่นเพื่อทดสอบหรือแม้แต่คนอื่นเพื่อรวมเข้าด้วยกัน

คุณสามารถใช้สิ่งนี้เพื่อให้สาขาแก่ผู้รวมหรือคุณสามารถใช้ชื่อตามงาน ชื่อตามงานมักจะง่ายต่อการติดตามสำหรับผู้รวม แต่ทำให้นักพัฒนาคิดเกี่ยวกับการตั้งชื่อและคนไม่ชอบคิด ฉันไม่รู้ว่าวิธีไหนจะใช้ได้ดีกว่าในทางปฏิบัติ อาจขึ้นอยู่กับทีมนั้น ๆ


2

ฉันอาจจะไม่ให้นักพัฒนาแต่ละสาขาบนเซิร์ฟเวอร์กลางเว้นแต่คุณจะมีโครงสร้างพื้นฐานสไตล์ github บางอย่างที่ช่วยให้พวกเขาสร้างและทำลายสาขาของตัวเองและเอกสารที่ชัดเจนสำหรับพวกเขา นักพัฒนาบางคนจะต้องมีมากกว่าหนึ่งสาขาและบางคนไม่ต้องการเลย แต่คุณกำลังสร้างความยุ่งเหยิงให้ทุกคนเรียงลำดับและบริหารค่าใช้จ่ายด้วยตัวคุณเอง

ฉันขอแนะนำให้แทนที่จะเป็นคอมไพล์คอมไพล์แบบ git ที่ มันง่ายมากที่จะสร้างโคลนเปล่าบนเครื่องของคุณเองและทำให้โฟลเดอร์นั้นเป็นการแบ่งปัน SMB แบบอ่านอย่างเดียวเพื่อให้ผู้อื่นดึงออกมา ที่จริงแล้วมันจะทำให้ฉันประหลาดใจมากถ้านักพัฒนาซอฟต์แวร์ของคุณหลายคนยังไม่ได้ทำสิ่งนี้


1
โดยค่าเริ่มต้นทุกคนสามารถสร้างสาขาได้เสมอ Github อนุญาตให้สร้างที่เก็บข้อมูลทั้งหมด แต่นั่นเกินความจริงในกรณีนี้
Jan Hudec

1

ขึ้นอยู่กับวิธีการจัดทีมพัฒนาและงานของคุณ ในความคิดของฉันโมเดลที่คุณระบุจะทำงานได้ดีที่สุดหาก:

  1. นักพัฒนาแต่ละคนทำงานได้ด้วยตนเองโดยอิสระ
  2. นักพัฒนาทั้งหมดมีส่วนร่วมในงานเดียวกัน

จุดนี้อาจทำงานได้ไม่ดีนักหากคุณมีโครงการฟีเจอร์พร้อมกันในการพัฒนาและแต่ละโครงการมีผู้พัฒนาหลายรายทำงานอยู่


1

การให้นักพัฒนาแต่ละสาขาเป็นของตัวเองจะมีประโยชน์หากพวกเขากำลังทำงานกับสิ่งต่าง ๆ ที่อาจสัมผัสไฟล์เดียวกัน มันสามารถช่วยป้องกันการเหยียบนิ้วเท้าของกันและกัน แต่จะต้องให้ทุกคนผสานบ่อยครั้งและต้องรับผิดชอบเมื่อจัดการความขัดแย้ง นี่คือสิ่งที่ทำในสำนักงานของฉันและทำงานได้ค่อนข้างดีนอกเหนือจากวันที่หายากคุณต้องรวมไฟล์ที่คุณแก้ไขด้วยตนเองครึ่งหนึ่ง

หากคุณมีนักพัฒนาหลายคนที่ทำงานในคุณสมบัติเดียวกันมันอาจจะดีกว่าในการสร้างสาขาตามคุณลักษณะในการพัฒนามากกว่านักพัฒนา


1

หากคุณทำงานกับ Git คุณควรลองใช้คำขอดึง

โดยสรุปคุณต้องรวมสาขาหลักเข้ากับสาขาการทำงานปัจจุบันของคุณ ข้อขัดแย้งผสานจะอยู่ในสาขาท้องถิ่นของคุณ นี่เป็นสิ่งที่ดีเพราะสาขาหลักของคุณไม่เคยขาด หากคุณล้มเหลวจริงๆคุณมีความมุ่งมั่นในท้องถิ่นที่คุณสามารถเปลี่ยนกลับเป็น

เมื่อคุณทำการผสานเสร็จแล้วคุณจะขอให้คนอื่นในทีมตรวจสอบและรวมสาขาของคุณเข้ากับสาขาหลัก ไม่เคยรวมของคุณเอง! ตราบใดที่ไม่มีใครแอบเข้ามาและทำคำขอดึงอีกครั้งคุณรับประกันได้ว่าจะผสานสำเร็จ เนื่องจากทุกคนทราบถึงคำขอดึงคุณไม่ควรมีหลายคนรวมกันเป็นนายในเวลาเดียวกัน

เมื่อคุณคุ้นเคยกับกระบวนการนี้แล้วคุณควรพยายามผสานบ่อยที่สุดเท่าที่จะทำได้ - เรียงลำดับการรวมกลุ่มของคนจนอย่างต่อเนื่อง เวลาน้อยลงระหว่างความขัดแย้งที่ดีกว่า คุณจะระบุว่าเมื่อใดที่คนสองคนพยายามทำซ้ำและพวกเขาสามารถร่วมมือกันได้ สถานที่บางแห่งจะรวมทุกครั้งที่พวกเขาทำตามข้อกำหนดซึ่งอาจเป็นทุกสองสามชั่วโมง ฉันแนะนำให้รวมอย่างน้อยสัปดาห์ละครั้ง ไม่เช่นนั้นคุณต้องแยกงานออกไปให้ดีขึ้น

ฉันมักจะสร้างหนึ่งสาขาต่องาน Git นั้นดีเพราะมันแยกความแตกต่างระหว่างการกระทำในท้องถิ่นและการกด สิ่งนี้ให้ประโยชน์บางอย่างของแต่ละคนที่มีสาขาของตัวเองโดยไม่มีความซับซ้อนทั้งหมด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.