สิ่งที่ต้องทำต่อไปคือการมีส่วนร่วมในคุณลักษณะใหม่ ๆ หรือแก้ไขข้อบกพร่องอื่น ๆ ในสาขาเฉพาะของตนเอง (ผลักไปที่ส้อมของคุณเท่านั้น)
หมายความว่าส้อมของคุณยังคงอยู่ แต่กิ่งก้านในส้อมของคุณสามารถหมุนไปมาได้
นอกจากนี้คุณยังสามารถเอาส้อมถ้าคุณไม่ได้วางแผนที่จะมีส่วนร่วมต่อไป แต่มันจะเอารายการที่สอดคล้องกันใน 'Repositories คุณนำไปสู่'
ง่ายกว่าที่จะ:
- ลบ
fixสาขาของคุณ(จริงๆแล้วตอนนี้ถูกลบให้คุณแล้ว ) บนส้อมของคุณ (และใน repo ที่โคลนในเครื่องของคุณ: ดูที่ " ลบสาขา Git ทั้งในเครื่องและจากระยะไกล ")
git pull upstream master(หากmasterเป็นสาขาที่รวมการแก้ไขของคุณไว้: การผสานจะเป็นการกรอไปข้างหน้า): ไม่จำเป็นต้องใช้ฐานใหม่ในตอนนี้
- สร้างสาขาการแก้ไขใหม่ที่ด้านบนของท้องถิ่นที่อัปเดตของคุณ
master(ขณะนี้มีล่าสุดจากupstream master)
อย่างไรก็ตามอย่าลืมขั้นตอนหนึ่งก่อนที่จะส่งคำขอดึงในอนาคต :
สร้างฐานข้อมูลสาขาปัจจุบันของคุณก่อน ( fix) จากสาขาปลายทางต้นน้ำ
( upstreamเป็น repo ดั้งเดิมที่คุณแยก: ดู " อะไรคือความแตกต่างระหว่างที่มาและต้นน้ำใน github ")
ก่อนที่จะส่งสิ่งใด ๆ กลับไปยัง repo เดิม ("ต้นน้ำ") คุณต้องตรวจสอบให้แน่ใจว่างานของคุณเป็นไปตามข้อมูลล่าสุดจาก repo ดั้งเดิมดังกล่าว (หรือคำขอดึงจะไม่ส่งผลให้มีการรวมกรอไปข้างหน้าเมื่อใช้แล้ว กลับไปที่upstreamrepo)
ดูตัวอย่างเช่น " เวิร์กโฟลว์สำหรับจัดการคำขอดึงบน repos ที่แชร์ใน github "
กล่าวอีกนัยหนึ่งคือupstreamสามารถพัฒนาได้ (มีการผลักดันการกระทำใหม่) ในขณะที่คุณกำลังยุ่งอยู่กับการแก้ไขสิ่งต่างๆ upstreamคุณจำเป็นต้องเล่นใหม่แก้ไขของคุณด้านบนของที่ผลงานล่าสุดจากต้นน้ำเพื่อให้แน่ใจว่ากระทำของคุณยังคงเข้ากันได้กับรุ่นล่าสุดของ
OP Santosh Kumarถามว่าในความคิดเห็นที่ :
ฉันดึงและรวมจากหนึ่งupstreamไปยังหลักแล้วตอนนี้คืออะไร?
หากคุณยังไม่ได้ทำการแก้ไขใหม่ตั้งแต่คำขอดึงล่าสุดของคุณโปรดดูด้านบน (ลบและสร้างสาขาใหม่fixที่ด้านบนของการอัปเดตของคุณmaster)
หากคุณทำงานเพิ่มอีกแล้วนับตั้งแต่คำขอดึงของคุณฉันจะไม่รวมเข้าด้วยกันupstreamถ้าฉันต้องการสร้างคำขอดึงใหม่ : ฉันจะดึงและสร้างฐานใหม่ :
git pull --rebase upstream master
ด้วยวิธีนี้งานในพื้นที่ใหม่ทั้งหมดของฉันจะถูกเล่นซ้ำที่ด้านบนของคอมupstream masterมิตล่าสุด(ดึงมาจาก repo ในพื้นที่ของฉัน) โดยสมมติว่าmasterเป็นสาขาเป้าหมายที่จะรวมคำขอดึงในอนาคตของฉัน
แล้วฉันจะสามารถผลักดันการทำงานในท้องถิ่นของฉันไป ' origin' ซึ่งเป็นทางแยกของฉันบน GitHub upstreamของ
และจากทางแยกของฉันบน GitHub ฉันสามารถส่งคำขอดึงได้อย่างปลอดภัยโดยรู้ว่ามันจะเพิ่มคอมมิตใหม่เท่านั้นupstreamโดยไม่ต้องใช้ความละเอียดในการรวมใด ๆ : การรวมคอมมิตใหม่เหล่านั้นในupstreamrepo จะหมายถึงการรวมกรอไปข้างหน้าอย่างง่าย
การgit pull --rebaseไม่ระบุสาขาที่คุณต้องการตั้งฐานใหม่fixสาขา(เช็คเอาต์ในปัจจุบัน) จะไม่ทำงาน:
ที่ ( git pull --rebase) พูดว่า:
You asked to pull from the remote '`upstream`', but did not specify a branch.
ในที่สุดฉันควรต่อท้ายอาจารย์หรือไม่? แล้วสิ่งนี้จะทำอย่างไรมันจะลบfixสาขาของฉัน?
ได้คุณสามารถระบุสาขาที่จะเป็นเป้าหมายของคำขอดึงเช่น ' master'
ซึ่งจะไม่ลบfixสาขาของคุณแต่จะเล่นซ้ำที่ด้านบนของต้นน้ำที่masterดึงมาใน repo ของคุณ
:)