การทำงานกับการผสานและการลบสาขา
มาสร้างมาสเตอร์แบรนช์กันก่อน ใส่คอมมิตสองสามตัว สร้างแบรนช์ใหม่ที่เรียกว่าคุณสมบัติ เพิ่มคอมมิตสองสามตัว จากนั้นกลับมาที่มาสเตอร์แล้วคอมมิตอีกครั้ง นี่คือคำสั่ง:
$mkdirmygame
$ซีดีmygame
$git init
$โยนออก 'การตัดสินใจออกแบบ 1: Brainstarm' >>design.txt
$git add -ถึง
$git คอมมิท -NS 'C0: เริ่มโครงการ'
$โยนออก 'การออกแบบการตัดสินใจ 2: เขียนโค้ด' >>design.txt
$git add -ถึง
$git คอมมิท -NS 'C1: รหัสที่ส่ง'
$สาขา gitคุณสมบัติ
$git checkoutคุณสมบัติ
$โยนออก 'เพิ่มคุณสมบัติ 1' >>feature.txt
$git add -ถึง
$git คอมมิท -NS 'C2: คุณลักษณะ 1'
$โยนออก 'เพิ่มคุณสมบัติ 2' >>feature.txt
$git add -ถึง
$git คอมมิท -NS 'C3: คุณลักษณะ 2'
$git checkoutผู้เชี่ยวชาญ
$โยนออก 'ปรับเปลี่ยนอาจารย์อีกครั้ง' >>design.txt
$git add -ถึง
$git คอมมิท -NS 'C4: มาสเตอร์ดัดแปลง'
คำสั่งดังกล่าวสร้างสถานการณ์ต่อไปนี้:
คุณสามารถตรวจสอบประวัติของทั้งสองสาขาเพื่อดูว่าพวกเขามีคอมมิตอะไรบ้าง:
$สถานะ git
บนต้นแบบสาขา
ไม่มีอะไรจะคอมมิต ไดเร็กทอรีทำงาน clean
$git log --oneline
2031b83 C4: ดัดแปลงต้นแบบ
1c0b64c C1: รหัสที่ส่ง
$git checkoutคุณสมบัติ
เปลี่ยนเป็นสาขา'คุณสมบัติ'
$git log --oneline
93d220b C3: คุณสมบัติ2
ad6ddb9 C2: คุณสมบัติ1
1c0b64c C1: รหัสที่ส่ง
ec0fb48 C0: เริ่มโครงการ
ตอนนี้ สมมติว่าคุณต้องการนำการเปลี่ยนแปลงทั้งหมดจากสาขาคุณลักษณะไปยังสาขาหลักของเรา คุณจะต้องเริ่มกระบวนการจากปลายทางของการผสาน เนื่องจากเราต้องการรวมเข้ากับสาขาหลัก คุณต้องเริ่มกระบวนการจากที่นั่น ลองดูสาขาหลัก:
$git checkoutผู้เชี่ยวชาญเปลี่ยนเป็นสาขา'ผู้เชี่ยวชาญ'
$สถานะ git
บนต้นแบบสาขา
ไม่มีอะไรจะคอมมิต ไดเร็กทอรีทำงาน clean
ตอนนี้ มาสร้างการผสานกัน:
$git mergeคุณสมบัติ
หากไม่มีข้อขัดแย้งในการผสาน คุณจะได้รับโปรแกรมแก้ไขข้อความพร้อมความคิดเห็น:
รวมสาขา'คุณสมบัติ'# โปรดป้อนข้อความยืนยันเพื่ออธิบายว่าทำไมการควบรวมนี้จึงมีความจำเป็น
# โดยเฉพาะอย่างยิ่งหากรวมอัปสตรีมที่อัปเดตเข้ากับสาขาของหัวข้อ
#
# บรรทัดที่ขึ้นต้นด้วย '#' จะถูกละเว้น และข้อความว่างจะยกเลิก
#คอมมิชชั่น.
คุณสามารถแก้ไขความคิดเห็นหรือยอมรับความคิดเห็นเริ่มต้น ผลลัพธ์การรวมควรแสดงผลดังนี้:
ผสานโดย'ซ้ำ'กลยุทธ์.feature.txt| 2++
1 ไฟล์เปลี่ยน,2แทรก(+)
สร้างโหมด100644feature.txt
หลังจากการผสาน คุณมีเงื่อนไขดังต่อไปนี้:
หากคุณตรวจสอบบันทึกคุณจะพบ:
$สถานะ gitบนต้นแบบสาขา
ไม่มีอะไรจะคอมมิต ไดเร็กทอรีทำงาน clean
$git log --oneline
46539a3 C5: ผสานสาขา'คุณสมบัติ'
2031b83 C4: ดัดแปลงต้นแบบ
93d220b C3: คุณสมบัติ2
ad6ddb9 C2: คุณสมบัติ1
1c0b64c C1: รหัสที่ส่ง
ec0fb48 C0: เริ่มโครงการ
คุณรวมการเปลี่ยนแปลงสำเร็จแล้ว อย่างไรก็ตาม สาขาคุณลักษณะยังคงมีอยู่
$สาขา git -ถึงคุณสมบัติ
*ผู้เชี่ยวชาญ
คุณสามารถลบได้ด้วยคำสั่งต่อไปนี้:
$สาขา git -NSคุณสมบัติหากคุณตรวจสอบตอนนี้ คุณจะเห็นเฉพาะสาขาหลัก:
$สาขา git -ถึง*ผู้เชี่ยวชาญ
บทสรุป
ตรวจสอบให้แน่ใจว่าคุณได้ตรวจสอบสาขาที่ไม่ได้ใช้เป็นประจำและลบออก คุณต้องการให้ที่เก็บของคุณสะอาดเพื่อให้ง่ายต่อการสำรวจและทำความเข้าใจ