เวิร์กโฟลว์ทีม Github - เพื่อแยกหรือไม่


21

เราเป็นทีมเล็ก ๆ ของนักพัฒนาเว็บที่ใช้การโค่นล้ม แต่ในไม่ช้าเรากำลังเปลี่ยนไปใช้ GitHub

ฉันกำลังดูเวิร์กโฟลว์ Github ประเภทต่างๆและเราไม่แน่ใจว่าแนวคิดการฟอร์กทั้งหมดใน GitHub สำหรับนักพัฒนาแต่ละคนนั้นเป็นความคิดที่ดีสำหรับเราหรือไม่

หากเราใช้ส้อมฉันเข้าใจว่านักพัฒนาแต่ละคนจะมีที่เก็บข้อมูลระยะไกลและพื้นที่ส่วนตัวของเขาเอง ฉันกังวลว่ามันจะทำการผลักดันการเปลี่ยนแปลงอย่างหนักและซับซ้อนเกินไป นอกจากนี้ความกังวลที่ใหญ่ที่สุดของฉันคือมันจะบังคับให้นักพัฒนาแต่ละคนมี 2 รีโมท: กำเนิด (ซึ่งเป็นทางแยกระยะไกล) และอัปสตรีม (ซึ่งใช้ในการ "ซิงค์" การเปลี่ยนแปลงจากพื้นที่เก็บข้อมูลหลัก) ไม่แน่ใจว่ามันเป็นวิธีง่าย ๆ ในการทำสิ่งต่าง ๆ หรือไม่

สิ่งนี้คล้ายกับเวิร์กโฟลว์ที่อธิบายไว้ที่นี่: https://github.com/usm-data-analysis/usm-data-analysis.github.com/wiki/Git-workflow

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

มีคำแนะนำใดบ้างจากทีมที่ลองใช้ทั้งสองขั้นตอน?


3
เพื่อแยกหรือไม่แยก
Lukasz Madon

คำตอบ:


9

ฉันคิดว่าความกลัวในการตีของคุณมาจากการผสานที่น้อยกว่าตัวเอกของ SVN - เพราะไม่ใช่การฟอร์กกิ้งที่ทำให้เกิดปัญหา - เป็นการรวมกัน

ดำน้ำใน - คุณจะพบว่ามันยอดเยี่ยมจริง ๆ ! คุณไม่จำเป็นต้องใช้งานมากเกินไป (ไม่ต้องแยกทุกไฟล์ที่มีการเปลี่ยนแปลง) แต่คุณสามารถแยกคุณลักษณะและรวมกลับเข้ามาได้

คิดว่า GitHub เป็นรุ่นปรับปรุงที่คุ้มค่ากับแนวคิดหลักจำนวนมากในการควบคุมแหล่งที่มา

แนวคิดของสาขา "มั่นคง" และทางแยก "การพัฒนาที่ใช้งานอยู่" ยังครอบคลุมถึงปัญหาเหล่านี้หากคุณลังเลที่จะฟอร์ก : P


19
หากคุณแทนที่ "fork" ทุกอินสแตนซ์เป็น "branch" ฉันเห็นด้วย อย่างไรก็ตามคำถามเกี่ยวกับการฟอร์กและการจัดการกับที่เก็บระยะไกลสองอัน (หรือมากกว่า)
David Harkness

8

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

เรายังคงทำส้อมส่วนตัวเป็นบางครั้ง แต่โดยทั่วไปแล้วสำหรับการเปลี่ยนแปลงที่แปลกใหม่หรือการทดสอบแบบ 1 คนซึ่งโดยทั่วไปแล้วส่วนที่เหลือจะไม่สนใจ แต่เราต้องการเก็บจากระยะไกล แต่อย่างใด

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


6

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


3

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

เมื่อเป็นเช่นนั้นธุรกรรมซื้อคืนหลักของคุณใน Github จะมีหลายร้อยสาขา บางคนจะแก่และถูกลืมและไม่ถูกทอดทิ้ง

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

การแยกธุรกรรมซื้อคืนทำให้ง่ายต่อการติดตามว่าสาขาใดกำลังดำเนินการอยู่และสาขาใดที่ดีที่จะไป มันช่วยทำความสะอาด repo หลัก

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

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