GIT ใช้สาขาเพื่อแยกลำธารพัฒนาเพื่อป้องกันไม่ให้สาขาการปลดปล่อยที่มั่นคงกลายเป็นมลพิษ การนำงานในสาขาเข้าสู่กระแสหลักหมายถึงการรวมสาขา นี่คือวิธีที่คุณทำ
การผสานใน Git คืออะไร?
เตรียมที่จะรวมสาขาใน Git
ทำการผสาน
ทำการรวมตัวกันอย่างรวดเร็วใน Git
วิธีแก้ไขความขัดแย้งในการผสานใน Git
ทุกอย่างรวมกันในที่สุด
การผสานใน Git คืออะไร?
Git ได้รับการออกแบบมาเพื่อทำให้การแตกแขนงง่ายและรวดเร็ว ตรงกันข้ามกับระบบควบคุมรุ่นอื่น ๆ การแตกแขนงบน Git เป็นเรื่องเล็กน้อย ในโครงการที่มีหลายนักพัฒนาโดยเฉพาะการแตกแขนงเป็นหนึ่งในเครื่องมือหลักขององค์กรหลักของ GIT
Branches Sandbox ความพยายามในการพัฒนาใหม่เพื่อให้สามารถแก้ไขหรือเพิ่มรหัสโดยไม่ส่งผลกระทบต่อรหัสในสาขาอื่น ๆ โดยเฉพาะสาขาหลักหรือสาขาหลัก ซึ่งมักจะมีฐานรหัสที่เสถียรของคุณ
การแยกการเปลี่ยนแปลงเหล่านี้จากเวอร์ชันรหัสที่เสถียรของคุณเหมาะสมอย่างสมบูรณ์ แต่ไม่ช้าก็เร็วรหัสใหม่จะได้รับการทดสอบตรวจสอบและประทับยางที่จะรีดเข้าไปในสาขาหลัก ณ จุดนี้คุณต้องรวมสาขาของคุณเข้ากับสาขาหลัก
ที่จริงแล้วสาขาสามารถมีสาขาย่อยดังนั้นคุณอาจรวมสาขาของคุณเข้ากับสาขาอื่นแทนที่จะเป็นสาขาหลัก เพียงจำไว้ว่าการผสานมักจะใช้หนึ่งสาขาและรวมเข้ากับ เป้า สาขาไม่ว่าสาขาใดจะเป็น หากคุณต้องการรวมสาขาหลักของคุณเข้ากับสาขาอื่นคุณก็สามารถทำได้เช่นกัน
เช่นเดียวกับการกระทำส่วนใหญ่ใน Git คุณทำการรวมในพื้นที่เก็บข้อมูลในพื้นที่ของคุณและผลักพวกเขาไปยังที่เก็บระยะไกลของคุณ
เตรียมที่จะรวมสาขาใน Git
เรามีโครงการพัฒนาขนาดเล็กที่มีที่เก็บ Git ท้องถิ่นและที่เก็บ GIT ระยะไกล เราสร้างสาขาที่เรียกว่า“ BugFix14” จากสาขา“ Master” และทำงานเพื่อแก้ปัญหาข้อผิดพลาด
งานนั้นเสร็จสมบูรณ์และเราได้ทดสอบรหัสของเรา ทุกอย่างใช้งานได้ตามที่คาดไว้ เราต้องการหมุนการเปลี่ยนแปลงเหล่านั้นเป็นสาขาหลักเพื่อให้การแก้ไขของเราเป็นส่วนหนึ่งของซอฟต์แวร์รุ่นต่อไป
มีการเตรียมการเล็กน้อยก่อนที่เราจะทำการผสาน เราต้องตรวจสอบให้แน่ใจว่าสาขาเป้าหมาย - ในกรณีนี้สาขา "มาสเตอร์" - และสาขาที่เราจะรวมเข้าด้วยกันเป็นทั้งสองอย่างทันสมัย
- บน Branch Bugfix14 : นี่คือสาขาปัจจุบันของเรา
- สาขาของคุณทันสมัยด้วย 'Origin/Bugfix' : สาขาในพื้นที่เก็บข้อมูลท้องถิ่นของเรามีประวัติการกระทำเช่นเดียวกับสาขาในที่เก็บระยะไกล นั่นหมายความว่าพวกเขาเหมือนกัน
- ไม่มีอะไรจะกระทำ ไม่มีการเปลี่ยนแปลงในพื้นที่จัดเตรียมที่ยังไม่ได้กระทำ
- ต้นไม้ทำงานสะอาด : ไม่มีการเปลี่ยนแปลงที่ไม่มีการเปลี่ยนแปลงในไดเรกทอรีการทำงาน
ทุกคนระบุว่าสาขานั้นทันสมัยและเรามีความชัดเจนที่จะดำเนินการต่อ หากสิ่งเหล่านี้ระบุว่ามีการเปลี่ยนแปลงเราจำเป็นต้องจัดเวทีให้พวกเขากระทำและผลักพวกเขาไปยังรีโมท หากมีคนอื่นทำงานกับไฟล์เหล่านี้เราอาจต้องดึงการเปลี่ยนแปลงของพวกเขาจากที่เก็บระยะไกล
ตรวจสอบสาขาที่เราจะรวมเข้ากับกระบวนการที่รวมกันง่ายขึ้น นอกจากนี้ยังช่วยให้เราสามารถตรวจสอบได้ว่าทันสมัย มาดูสาขาหลักกันเถอะ
เราได้รับการยืนยันแบบเดียวกับที่สาขา“ Master” เป็นปัจจุบัน
ที่เกี่ยวข้อง: วิธีเลือกเวิร์กโฟลว์ Git & amp; รูปแบบการแตกแขนงที่เหมาะกับทีมของคุณ
ทำการผสาน
สาขา“ Bugfix14” ถูกแยกออกจากสาขา“ Master” มีการสร้างความมุ่งมั่นไปยังสาขา“ อาจารย์” หลังจากสร้างสาขา“ Bugfix14” มีการกระทำสองสามข้อในสาขา“ Bugfix14”
เราตรวจสอบให้แน่ใจว่าสาขาทั้งสองของเราทันสมัยและเราได้ตรวจสอบสาขา "มาสเตอร์" เราสามารถออกคำสั่งเพื่อรวมสาขา“ BugFix14” เข้ากับสาขา“ Master”
การผสานเกิดขึ้น สาขา“ Bugfix14” ยังคงมีอยู่ แต่ตอนนี้การเปลี่ยนแปลงที่เกิดขึ้นในสาขานั้นได้ถูกรวมเข้ากับสาขา“ Master”
ในอินสแตนซ์นี้คำสั่ง Merge ดำเนินการ ผสานสามทาง . มีเพียงสองสาขา แต่มีสามข้อตกลงที่เกี่ยวข้อง พวกเขาเป็นหัวหน้าสาขาหนึ่งและหนึ่งในสามที่แสดงถึงการกระทำที่ผสาน
ในการอัปเดตที่เก็บระยะไกลของเราเราสามารถใช้ไฟล์ Git Push สั่งการ.
บางคนชอบที่จะลบสาขาด้านข้างเมื่อพวกเขารวมกัน คนอื่น ๆ ดูแลรักษาพวกเขาให้เป็นบันทึกประวัติศาสตร์การพัฒนาที่แท้จริงของโครงการ
หากคุณต้องการลบสาขาคุณสามารถทำได้โดยใช้ไฟล์
กิ่งก้าน
คำสั่งด้วย
-d
ตัวเลือก (ลบ)
ถึง ลบสาขา ในพื้นที่เก็บข้อมูลระยะไกลใช้คำสั่งนี้:
คุณจะมีประวัติศาสตร์การกระทำเชิงเส้น แต่มันจะไม่ใช่ประวัติศาสตร์ที่แท้จริง
ที่เกี่ยวข้อง: วิธีการลบกิ่งก้านในที่เก็บในท้องถิ่นและระยะไกล
ทำการรวมตัวกันอย่างรวดเร็วใน Git
หากคุณยังไม่ได้ทำอะไรกับสาขา“ อาจารย์” ประวัติของคุณจะมีลักษณะเช่นนี้ มันจะดูสิ่งนี้หากคุณมี ทำให้เกิดขึ้นใหม่ สาขาการพัฒนาของคุณเพื่อให้ติดอยู่กับจุดสิ้นสุดของสาขา "อาจารย์"
เนื่องจากไม่มีความมุ่งมั่นในสาขา“ Master” ในการรวมสาขา“ Bugfix15” Git ทั้งหมดต้องทำคือชี้ตัวชี้หัว“ ต้นแบบ” ไปยังการกระทำสุดท้ายของสาขา“ Bugfix15”
Git จะทำการผสานอย่างรวดเร็ว เมื่อใดก็ตามที่ทำได้ . หากมุ่งไปที่สาขา“ Master” หมายถึงการผสานที่รวดเร็วไปข้างหน้าไม่สามารถทำได้ GIT จะใช้ก ผสานสามทาง .
คุณไม่สามารถ
บังคับ
การผสานที่รวดเร็ว-มันอาจเป็นไปไม่ได้เลย-แต่คุณสามารถประกาศว่ามันจะเป็นการผสานที่รวดเร็วหรือไม่มีอะไรเลย มีตัวเลือกที่สั่งให้ Git ใช้การผสานล่วงหน้าอย่างรวดเร็วหากทำได้ แต่ไม่ต้องทำการรวมสามทางหากไม่สามารถทำได้ ตัวเลือกคือ
-บอกอย่างเดียว
(รวมไปข้างหน้าอย่างรวดเร็วเท่านั้น)
สิ่งนี้จะรวมสาขา“ Bugfix15” เข้ากับสาขา“ Master” แต่เฉพาะในกรณีที่การผสานที่รวดเร็วไปข้างหน้า
ในกรณีนี้มีการมุ่งมั่นที่สาขา "อาจารย์" ดังนั้นการผสานที่รวดเร็วไปข้างหน้าจึงไม่สามารถทำได้
วิธีแก้ไขความขัดแย้งในการผสานใน Git
หากส่วนเดียวกันของไฟล์เดียวกันมีการเปลี่ยนแปลงในทั้งสองสาขาสาขาไม่สามารถรวมกันได้ การปฏิสัมพันธ์ของมนุษย์จำเป็นต้องมีการแก้ไขการแก้ไขที่ขัดแย้งกัน
ที่นี่เราได้ทำการเปลี่ยนแปลงไฟล์ที่เรียกว่า "rot.c" ในสาขาที่เรียกว่า "Bugfix17" ที่เราต้องการรวมเข้ากับสาขา "Master" แต่“ rot.c” ได้รับการเปลี่ยนแปลงในสาขา“ Master” เช่นกัน
เมื่อเราพยายามรวมมันเราจะได้รับคำเตือนว่ามีความขัดแย้ง Git แสดงรายการไฟล์ที่ขัดแย้งกันและบอกเราว่าการผสานล้มเหลว เราสามารถกลับออกมาได้อย่างสมบูรณ์โดยใช้ไฟล์
-ช่วย
ตัวเลือก:
แต่การแก้ไขการผสานนั้นไม่น่ากลัวเท่าที่ฟัง Git ได้ทำงานบางอย่างเพื่อช่วยเรา หากเราแก้ไขหนึ่งในไฟล์ที่ขัดแย้งกัน - ในกรณีของเราเรามีเพียงไฟล์เดียว - เราจะพบส่วนรหัสที่ขัดแย้งกันที่ไฮไลต์สำหรับเรา
ความขัดแย้งแต่ละอย่างถูกล้อมรอบด้วยตัวละครน้อยกว่าเจ็ดตัว”
& lt; & lt; & lt; & lt; & lt; & lt; & lt;
” และตัวละครที่ยิ่งใหญ่กว่าเจ็ดตัว”
& gt; & gt; & gt; & gt; & gt; & gt; & gt;
“ ด้วยสัญญาณเท่ากับเจ็ดอัน”
=======
" ระหว่างพวกเขา.
- รหัสด้านบนสัญญาณเท่ากับมาจากสาขาที่คุณรวมเข้าด้วยกัน เข้าไปข้างใน .
- รหัสด้านล่างเครื่องหมาย Equals คือรหัสจากสาขาที่คุณพยายามทำ ผสาน .
คุณสามารถค้นหาหนึ่งในชุดตัวละครเจ็ดตัวและย้ายจากความขัดแย้งไปสู่ความขัดแย้งผ่านไฟล์ของคุณได้อย่างง่ายดาย สำหรับความขัดแย้งแต่ละครั้งคุณต้องเลือกชุดของการแก้ไขที่คุณจะเก็บไว้ คุณต้องแก้ไขรหัสที่คุณปฏิเสธและสายเจ็ดตัวละครที่ Git ได้เพิ่มเข้ามา
เราจะเก็บรหัสจากสาขา“ BugFix17” หลังจากแก้ไขไฟล์ของเราจะเป็นแบบนี้
ตอนนี้เราสามารถดำเนินการต่อไปด้วยการผสาน แต่หมายเหตุเราใช้ไฟล์
ให้สัญญา
คำสั่งให้ทำเช่นนั้นไม่ใช่
ผสาน
สั่งการ.
เรากระทำการเปลี่ยนแปลงโดยการจัดเตรียมไฟล์และกระทำตามปกติ เราจะตรวจสอบสถานะก่อนที่เราจะทำการกระทำครั้งสุดท้าย
การผสานเสร็จสมบูรณ์ ตอนนี้เราสามารถผลักสิ่งนี้ไปยังที่เก็บระยะไกลของเรา
ที่เกี่ยวข้อง: วิธีแก้ไขแก้ไขหรือเลิกทำ GIT Commits (เปลี่ยนประวัติ GIT)
ทุกอย่างรวมกันในที่สุด
สาขาทั้งหมดจะต้องถูกรวมเข้าด้วยกันในที่สุดเพื่อให้การเปลี่ยนแปลงในพวกเขาไม่กลายเป็นเด็กกำพร้าและลืม
สาขาการรวมกันเป็นเรื่องง่าย แต่การจัดการกับความขัดแย้งอาจมีความซับซ้อนในทีมที่ยุ่งและใหญ่ การแก้ไขข้อขัดแย้งอาจต้องใช้ข้อมูลจากนักพัฒนาแต่ละคนเพียงเพื่ออธิบายว่ารหัสของพวกเขาทำอะไรและทำไมพวกเขาถึงทำการเปลี่ยนแปลง คุณต้องเข้าใจว่าก่อนที่คุณจะสามารถตัดสินใจได้อย่างชาญฉลาดเกี่ยวกับการแก้ไขที่จะเก็บไว้
- › วิธีเปลี่ยนชื่อสาขาใน Git
- › วิธีชำระเงินสาขา Git ระยะไกล
- › วิธีซ่อนการเปลี่ยนแปลงใน Git
- › วิธีเปลี่ยนกิ่งใน GitHub
- › Git Rebase: ทุกสิ่งที่คุณต้องรู้
- › OnePlus 11 อยู่ที่นี่ แต่ด้วยการเริ่มต้นคร่าวๆ
- › Microsoft Edge ได้รับการแชท AI และรูปลักษณ์ใหม่บน Windows
- › หูฟังที่ดีที่สุดสำหรับแฟน ๆ iPhone เพียงแค่ราคาต่ำสุดของพวกเขา