สิ่งที่ต้องทำต่อไปคือการมีส่วนร่วมในคุณลักษณะใหม่ ๆ หรือแก้ไขข้อบกพร่องอื่น ๆ ในสาขาเฉพาะของตนเอง (ผลักไปที่ส้อมของคุณเท่านั้น)
หมายความว่าส้อมของคุณยังคงอยู่ แต่กิ่งก้านในส้อมของคุณสามารถหมุนไปมาได้
นอกจากนี้คุณยังสามารถเอาส้อมถ้าคุณไม่ได้วางแผนที่จะมีส่วนร่วมต่อไป แต่มันจะเอารายการที่สอดคล้องกันใน 'Repositories คุณนำไปสู่'
ง่ายกว่าที่จะ:
- ลบ
fix
สาขาของคุณ(จริงๆแล้วตอนนี้ถูกลบให้คุณแล้ว ) บนส้อมของคุณ (และใน repo ที่โคลนในเครื่องของคุณ: ดูที่ " ลบสาขา Git ทั้งในเครื่องและจากระยะไกล ")
git pull upstream master
(หากmaster
เป็นสาขาที่รวมการแก้ไขของคุณไว้: การผสานจะเป็นการกรอไปข้างหน้า): ไม่จำเป็นต้องใช้ฐานใหม่ในตอนนี้
- สร้างสาขาการแก้ไขใหม่ที่ด้านบนของท้องถิ่นที่อัปเดตของคุณ
master
(ขณะนี้มีล่าสุดจากupstream master
)
อย่างไรก็ตามอย่าลืมขั้นตอนหนึ่งก่อนที่จะส่งคำขอดึงในอนาคต :
สร้างฐานข้อมูลสาขาปัจจุบันของคุณก่อน ( fix
) จากสาขาปลายทางต้นน้ำ
( upstream
เป็น repo ดั้งเดิมที่คุณแยก: ดู " อะไรคือความแตกต่างระหว่างที่มาและต้นน้ำใน github ")
ก่อนที่จะส่งสิ่งใด ๆ กลับไปยัง repo เดิม ("ต้นน้ำ") คุณต้องตรวจสอบให้แน่ใจว่างานของคุณเป็นไปตามข้อมูลล่าสุดจาก repo ดั้งเดิมดังกล่าว (หรือคำขอดึงจะไม่ส่งผลให้มีการรวมกรอไปข้างหน้าเมื่อใช้แล้ว กลับไปที่upstream
repo)
ดูตัวอย่างเช่น " เวิร์กโฟลว์สำหรับจัดการคำขอดึงบน 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
โดยไม่ต้องใช้ความละเอียดในการรวมใด ๆ : การรวมคอมมิตใหม่เหล่านั้นในupstream
repo จะหมายถึงการรวมกรอไปข้างหน้าอย่างง่าย
การ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 ของคุณ
:)