มีวัตถุประสงค์ในการใช้คำขอดึงบน repo ของฉันเองหรือไม่ถ้าฉันเป็นนักพัฒนาซอฟต์แวร์คนเดียว?


38

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

ตอนนี้เมื่อฉันผลักสาขาของฉันไปที่ GitHub ฉันมีส่วนนั้นที่ฉันมีสองปุ่ม: Pull RequestและCompareด้วยชื่อของสาขาที่ฉันเพิ่งผลักไป ฉันเข้าใจถึงวัตถุประสงค์ของCompareปุ่ม แต่ฉันไม่เข้าใจว่าทำไมฉันถึงต้องการสร้างคำขอดึงใน repo ของฉันเอง

มีคนอธิบายได้ไหมว่าทำไมฉันถึงทำอย่างนั้น? มันจะมีประโยชน์หรือไม่ที่จะทำการร้องขอ pull บน repo ของฉันเองถ้าฉันเป็นนักพัฒนาซอฟต์แวร์คนเดียว?

คำตอบ:


28

สำหรับนักพัฒนาส่วนบุคคล (ส่วนใหญ่) ที่ทำงานด้วยตัวเองการสร้างคำขอดึงอาจไม่คุ้มค่า อย่างไรก็ตามฉันสามารถคิดอย่างน้อยหนึ่งเหตุผลที่เป็นไปได้ที่จะทำ:

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

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

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


10

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

ในกรณีของคุณมีใครบางคนเป็นคุณ

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

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

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

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

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

นี่คือแนวทางปฏิบัติและไม่ใช่กฎที่ต้องปฏิบัติตาม ฉันตั้งใจจะทำลายพวกเขาบางครั้ง ตัวอย่างเช่นเมื่อวานนี้ฉันยืนยันที่จะพิมพ์ผิดให้เป็นผู้เชี่ยวชาญ


3

ดูเหมือนว่าคุณมีสาขาที่อยู่ห่างไกลเช่นเดียวกับสาขาในท้องถิ่น หากคุณกำลังมองหาโอเวอร์เฮดของเวิร์กโฟลว์นั้นมากเกินไปคุณสามารถทำงานกับฟีเจอร์ต่าง ๆ ได้ตลอดเวลาโดยใช้สาขาท้องถิ่นโดยไม่ต้องกดมัน

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


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

@ marco-fiset ไม่ควรเปลี่ยนคำตอบ ฉันไม่แน่ใจด้วยซ้ำว่าปุ่มคำขอดึงใดที่คุณอ้างถึง ..
David Cowden

3
คุณพูดว่า "ในฐานะนักพัฒนาคนเดียวคุณไม่จำเป็นต้องใช้โมเดลคำขอดึงข้อมูลและการมอบหมายให้เจ้านายโดยตรงควรทำได้ดี" แต่ไม่ใช้คำขอการดึงไม่ได้หมายความว่าไม่ได้ใช้สาขา
Rob N

0

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


0

เหตุผลที่ฉันทำคือมันเป็นวิธีที่สะดวกในการตรวจสอบให้แน่ใจว่าการตรวจสอบอัตโนมัติทั้งหมดผ่าน (มันรวบรวมมันมีการจัดรูปแบบที่ถูกต้องทดสอบหน่วยผ่าน ... )

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

โดยทั่วไปเป็นวิธีเชื่อมต่อ hooks เพื่อทำการเปลี่ยนแปลงให้เสร็จสมบูรณ์ การทดสอบเป็นตัวอย่าง @John พูดถึงการสร้างบันทึกประจำรุ่นเป็นอีกตัวอย่างหนึ่ง


-2

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

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

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


ดูเหมือนว่าจะเป็นเพียงการทำซ้ำคะแนนและอธิบายเมื่อนานมาแล้วในคำตอบที่ดีที่สุด
gnat

1
ฉันไม่เห็นด้วย. ในขณะที่คำตอบอันดับต้นกำลังพูดถึงหลักเกี่ยวกับพื้นที่เก็บข้อมูลที่ใช้ร่วมกันแบบ vs เดียวการอภิปรายเกี่ยวกับการดึงจะเน้นที่ขั้นตอนและการแบ่งปันข้อมูลมากขึ้น ประเด็นของฉันคือการรักษาประวัติศาสตร์ที่สอดคล้องกัน ดูที่movingfast.io/articles/git-force-pushingสำหรับข้อมูลเพิ่มเติม หากใครบางคนกำลังใช้ส้อมหรือโคลนของต้นแบบและคุณเขียนประวัติศาสตร์ใหม่ผู้ปกครองที่อ้างถึงอาจหายไป
Matthew Tippett
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.