ที่นายจ้างปัจจุบันของฉันเรากำลังใช้โครงการโอเพ่นซอร์สที่โฮสต์ใน Github เป็นส่วนประกอบของใบสมัครของเรา ฉันได้ทำงานในโครงการนี้เพื่อเพิ่มคุณสมบัติบางอย่างที่เราต้องการและรวมเข้ากับระบบการสร้างของเรา ผู้จัดการของฉันและฉันเห็นด้วยที่เราอยากจะส่งผลงานของเราในส่วนนี้มากพอ ๆ กับที่สมเหตุสมผลกับโครงการโอเพ่นซอร์ส คำถามของฉันคือสิ่งที่เวิร์กโฟลว์ / เทคนิคที่ดีที่สุดคือการรักษา Git ของฉันในแบบที่ฉันสามารถแยกสิ่งต่าง ๆ ที่เหมาะสมเพื่อเพิ่มกลับไปยังโครงการโอเพ่นซอร์ส - แก้ไขข้อผิดพลาดและคุณสมบัติใหม่ที่เพียงพอทั่วไป - จากสิ่งที่เฉพาะเจาะจงกับโครงการของเราเช่นสถานที่สร้างและค่าคงที่แอปพลิเคชัน
สิ่งที่ฉันได้ทำไปคือการรักษาสาขา Git ส่วนตัวที่ฉันกระทำการเปลี่ยนแปลงทั้งหมดของฉันด้วยความละเอียดที่เหมาะสม จากนั้นฉันจะใช้cherry-pick
เพื่อเพิ่มความมุ่งมั่นแบบโอเพ่นซอร์สที่จะส่งไปยังสาขาหลักและส่งกลับไปที่ Github
ดูเหมือนว่าฉันควรใช้การผสานเพื่อทำสิ่งนี้เพื่อที่ฉันจะได้ไม่สร้างการผูกมัดแยกกับเนื้อหาที่เหมือนกัน แต่ฉันไม่แน่ใจว่าจะทำอย่างไรในขณะที่ไม่รวมข้อผูกพันเฉพาะ บริษัท และรักษาเวิร์กโฟลว์ที่เหมาะสม
ตัวอย่างเช่นฉันสมมติว่าฉันสามารถกระทำสิ่งที่เปิดแหล่งที่มาบนข้อมูลหลักและสิ่งเฉพาะของ บริษัท ในสาขาส่วนตัวจากนั้นจึงรวมต้นแบบเข้ากับสาขานั้นตามความจำเป็นโดยปล่อยให้สาขาหลักชี้ไปที่การกระทำก่อนที่จะผสาน กระทำสิ่งที่โอเพนซอร์สสามารถทำได้อีกครั้งแล้วรวมอีกครั้ง สิ่งที่น่าแปลกใจเกี่ยวกับขั้นตอนการทำงานนี้คือฉันจะต้องตัดสินใจล่วงหน้าสำหรับทุกสิ่งที่ฉันทำซึ่งเป็นสาขาของมันทำงานในสิ่งที่ดูเหมือนว่าจะแล้วเสร็จจากนั้นจึงส่งและรวมก่อนทำการทดสอบ สิ่งหนึ่งที่ฉันชอบเกี่ยวกับ Git คือความง่ายในการทำสิ่งที่คุณต้องการเพื่อทำให้แอปพลิเคชันของคุณทำงานได้จากนั้นตัดสินใจในภายหลังว่าจะทำอย่างไรกับการเปลี่ยนแปลงของคุณ เท่าที่ฉันสามารถบอกได้ถ้าคุณอยู่ในสาขาและทำงานบางอย่างเสร็จแล้ว
ฉันกำลังทำเวิร์กโฟลว์ที่สมเหตุสมผลสำหรับการมีส่วนร่วมในระยะยาวหรือไม่ ใครช่วยแนะนำเวิร์กโฟลว์อื่นที่อาจดีกว่าและทำไมมันถึงดีกว่า