มารยาทที่เหมาะสมคืออะไรและแนะนำเวิร์กโฟลว์ GitHub สำหรับการมีส่วนร่วมและเบี่ยงเบนไปจาก repo ต้นน้ำพร้อมกันหรือไม่


21

ฉันใหม่กับ GitHub และ VCS โดยทั่วไป ฉันเขียนโปรแกรมในหลายภาษามาหลายปีแล้ว แต่ฉันก็ทำงานเดี่ยวในโครงการที่กำหนดเอง (ไม่มีการเผยแพร่สาธารณะ) ฉันเพิ่งเริ่มใช้วิดเจ็ต jQuery UI ที่ฉันดาวน์โหลดจาก GitHub ในโครงการที่ฉันกำลังทำงานอยู่ repo ไม่ได้รับการบำรุงรักษาโดยผู้เขียนดั้งเดิมอีกต่อไป ส้อมอื่นได้รวมคำขอดึงต้นฉบับไว้บางส่วน นี่คือสิ่งที่ฉันแยกออกมา

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

ฉันยังคงเรียนรู้ GIT และ GitHub และฉันพยายามหาวิธีที่ดีที่สุดในการทำทุกสิ่ง ฉันได้อ่านมาก (ที่นี่, SO, GitHub หน้าช่วยเหลือ, Pro Git) เกี่ยวกับแนวคิด / ภารกิจต่าง ๆ : เวิร์กโฟลว์, การรวม, ดึงคำขอ, การเลือกเชอร์รี่, การรีบูต, การแตกแขนง สสารสีเทาของฉันคือว่ายน้ำและฉันต้องเริ่มทำเพื่อให้ฉันสามารถเข้าใจสิ่งที่ฉันได้อ่าน

ประเด็นหลัก:

  1. ฉันคิดว่าฉันอ่าน (บางแห่ง) ว่าคุณสามารถมีคำขอดึงหนึ่งครั้งในสาขาในแต่ละครั้ง นั่นหมายความว่าฉันควรแยกสาขาสำหรับแต่ละข้อผิดพลาดจากนั้นทำคำขอดึงแยกต่างหากสำหรับแต่ละข้อ

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

  3. ฉันคิดว่าการสร้างปัญหากับทางแยกของฉันเป็นวิธีการบันทึกข้อผิดพลาดแม้ว่าฉันจะมีการแก้ไขสำหรับพวกเขาแล้ว นั่นเป็นความคิดที่ดีหรือไม่? ฉันจะไปเกี่ยวกับการเชื่อมโยงปัญหาการกระทำและการผสานเพื่อหลักได้อย่างไร หากฉันทำคำขอดึงข้อมูลอัปสตรีมปัญหาของฉันจะปรากฏขึ้นเช่นกันหรือลิงก์เอกสารหายไปหรือไม่ ฉันไม่สามารถเปิดปัญหากับ repo upstream (ไม่มีแท็บปัญหา)

  4. วิธีที่ดีที่สุดในการให้เครดิตกับผู้เขียนคนอื่น ๆ สำหรับความคิดของเขาที่ฉันต้องการใช้คืออะไร? ฉันไม่สามารถใช้รหัสของเขาได้อย่างชัดเจนโดยเฉพาะอย่างยิ่งเนื่องจากการเปลี่ยนแปลงของเขาถูกนำไปใช้กับเวอร์ชันเก่ากว่าของ upstream และไม่สามารถทำงานร่วมกับการเปลี่ยนแปลงอื่น ๆ ของฉันได้ แต่ฉันต้องการใช้แนวคิดนี้และต้องการให้เครดิตเมื่อถึงกำหนดเครดิต ฉันควรจะเชื่อมโยงไปยัง repo ของเขา (หรือโปรไฟล์หรือการกระทำที่เฉพาะเจาะจง) ในข้อความการกระทำของฉันหรือไม่

  5. มารยาทในการเปลี่ยนไฟล์ readme และ DocBlock ที่ด้านบนของไฟล์หลักคืออะไร? มันเป็นการตกลงที่จะทำการเปลี่ยนแปลงเพิ่มชื่อของฉันเพิ่มลิงค์ไปยัง repo และเดโมของฉันลบลิงก์ไปยังการสาธิตดั้งเดิม แน่นอนฉันจะออกจากชื่อผู้เขียนต้นฉบับและข้อมูลใบอนุญาต สำหรับบันทึกนั้นได้รับอนุญาตภายใต้ใบอนุญาต MIT

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

คำตอบ:


15
  1. ถูกต้อง: คำขอดึงถูกเชื่อมโยงกับสาขาในพื้นที่เก็บข้อมูลของคุณ หากคุณปรับเปลี่ยนสาขาคุณจะปรับเปลี่ยนสิ่งที่คุณส่งเป็นคำขอดึง

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

  2. Doทำให้ดึงคำขอสำหรับการเปลี่ยนแปลงช่องว่างของคุณ! การพูดในฐานะคนที่บางครั้งเป็นผู้ดูแลฉันรักการร้องขอแบบดึงเหล่านี้: ฉันอนุมัติพวกเขาหรือไม่และพวกเขาใช้เวลาเล็กน้อยในการประมวลผล

    สิ่งที่คุณอาจพบคือผู้ดูแลไม่เห็นด้วยกับการเปลี่ยนแปลงช่องว่าง! ดังนั้นระวัง ..

  3. อืม .. มันไม่ชัดเจนว่าคุณพยายามทำอะไรที่นี่ ดูเหมือนว่ามีเอกสารมากเกินไปและไม่ใช่ความคิดที่ดีบางทีคุณสามารถอธิบายได้ว่าทำไมคุณถึงอยากทำเช่นนี้?

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

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

  6. คุณสามารถเขียนประวัติ (ในพื้นที่ที่ยังไม่ได้เผยแพร่) ด้วย GIT! เรียนรู้คำสั่ง rebit git - นี่เป็นหนึ่งในเหตุผลหลักที่ฉันรัก git เป็นความคิดที่ไม่ดีจริงๆที่จะ (บังคับ) ผลักดันการคอมมิท / ประวัติการเขียนใหม่ไปยังที่เก็บที่ใช้ร่วมกัน (ตัวอย่างเช่น github) สิ่งนี้จะส่งผลกับคลังเก็บข้อมูลที่ผู้พัฒนารายอื่นมี - พวกเขาจะต้องทำสิ่งที่ยากเมื่อดึงการเปลี่ยนแปลง (ประวัติการเขียนใหม่) ของคุณ

[# 6: ขอบคุณ @toxalot!]


สำหรับ # 6 ใช่คุณสามารถเขียนประวัติใหม่ได้ แต่เฉพาะประวัติท้องถิ่นเท่านั้น เมื่อถูกผลักไปที่ repo สาธารณะมันเป็นความคิดที่ดีจริงๆที่จะเขียนประวัติศาสตร์ใหม่
toxalot
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.