พื้นฐานของการรวม Git และการลบสาขา

Basics Git Merging



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

การทำงานกับการผสานและการลบสาขา

มาสร้างมาสเตอร์แบรนช์กันก่อน ใส่คอมมิตสองสามตัว สร้างแบรนช์ใหม่ที่เรียกว่าคุณสมบัติ เพิ่มคอมมิตสองสามตัว จากนั้นกลับมาที่มาสเตอร์แล้วคอมมิตอีกครั้ง นี่คือคำสั่ง:







$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 -ถึง
*ผู้เชี่ยวชาญ

บทสรุป

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

อ่านเพิ่มเติม: