Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

Git Cherry Pick:คำแนะนำทีละขั้นตอน

ในฐานะนักพัฒนามือใหม่ เราเรียนรู้ git ผ่านการทำซ้ำ เราเรียนรู้อย่างรวดเร็วว่า git pull, git push และ git คอมมิตแต่ละวิธีอย่างไร เมื่อเราเปลี่ยนไปทำงานในโครงการที่ใหญ่ขึ้นและทำงานร่วมกับทีม เราเริ่มเรียนรู้คำสั่ง git ขั้นสูงที่จะช่วยให้ประวัติการควบคุมเวอร์ชันของ codebase ตรงไปตรงมาระหว่างบุคคลที่ทำงานในโครงการ

หนึ่งในคำสั่งดังกล่าวคือ git cherry-pick คำสั่ง git cherry-pick ใช้เมื่อเราต้องการรับคำสั่งเฉพาะจากแบรนช์หนึ่งและแนบมากับ HEAD ของฟีเจอร์แบรนช์อื่นหรือมาสเตอร์แบรนช์

git cherry-pick คืออะไร

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

นี่คือสาระสำคัญว่า git cherry-pick คืออะไร:เรารับการคอมมิตหรือการคอมมิตหลายรายการจากสาขาคุณลักษณะหนึ่งและแนบเป็นการคอมมิตใหม่ไปยังสาขาอื่น มาดูกันว่ามันทำงานอย่างไร:

Git Cherry Pick:คำแนะนำทีละขั้นตอน

ไดอะแกรมพื้นฐานนี้แสดงถึงสองสาขาจากโครงการที่ติดตามโดย git ตัวอักษรแสดงถึงการกระทำที่แตกต่างกันที่ทำกับที่เก็บ git ในสาขาที่เกี่ยวข้อง ขีดคั่นแสดงถึงประวัติศาสตร์ตั้งแต่เก่าที่สุดไปหาอายุน้อยที่สุด ลองนึกภาพโครงสร้างของทั้งสองสาขาและวิธีการทำงานเมื่อทำตามขั้นตอนเหล่านี้:

ขั้นตอนในการดำเนินการ git cherry-pick

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

  1. git ชำระเงิน <name of branch you’d like to grab commit from>
    ชำระเงินไปยังสาขาที่คุณต้องการเลือกคอมมิชชัน/เชอร์รี่
  2. git reflog
    บันทึกการอ้างอิง git reflog , ติดตามการกระทำล่าสุดที่ทำ นี่คือตัวอย่างของ git reflog:
    % git reflog
    bf654bb (HEAD -> master, origin/master) HEAD@{0}: commit: last commit message made
    2394353 HEAD@{1}: commit: where head was 2 commit messages ago
    b4b51eb HEAD@{2}: commit: where head was 3 commit messages ago


    บันทึกการอ้างอิงคอมมิตของคุณ หากทำงานกับทีมขนาดใหญ่ อาจมีข้อมูลเพิ่มเติม เช่น วันที่ เวลา และ/หรือผู้เขียนที่ทำคอมมิต อย่างไรก็ตาม ในที่นี้ เราจะเห็นการคอมมิตแฮช สาขาที่ทำการคอมมิต การดำเนินการ และข้อความการคอมมิตจริง

    เมื่อคุณรู้แล้วว่าคอมมิตใดที่คุณต้องการเพิ่มไปยังแบรนช์อื่น ให้สังเกตแฮช – แฮชคือสตริงของตัวเลขและอักขระที่จุดเริ่มต้นของแต่ละบรรทัดในตัวอย่างนี้
  3. git checkout <ชื่อสาขาที่คุณต้องการเพิ่มคอมมิต>
    หลังจากที่คุณจดบันทึกแฮชแล้ว ให้เปลี่ยนไปใช้สาขาที่คุณต้องการเพิ่มการคอมมิต
  4. git cherry-pick [-x]
    ใช้คำสั่ง git cherry-pick พร้อมกับคอมมิชชันแฮชเพื่อเพิ่มการคอมมิตไปยังแผนผังการทำงานของสาขานั้น ใช้แฟล็ก -x เมื่อคุณกำลังเลือกเชอร์รี่จากสาขาสาธารณะ เนื่องจากจะเป็นการต่อท้ายบรรทัดที่กล่าวถึงการคอมมิชชันดั้งเดิมที่ถูกเลือกจากเชอร์รี่
    มาดูไดอะแกรมของเราอีกครั้งหลังจากเลือกเชอร์รี่:

มาดูไดอะแกรมของเราอีกครั้งหลังจากเลือกเชอร์รี่:

Git Cherry Pick:คำแนะนำทีละขั้นตอน

“เชอร์รี่” ของเราหรือคอมมิตแฮชที่เราเลือกในตัวอย่างนี้คือ “C” หลังจากทำตามขั้นตอนที่อธิบายไว้ข้างต้นแล้ว การคอมมิตที่เลือก “C” ในตัวอย่างนี้ จะถูกเพิ่มเป็นการคอมมิตในประวัติของแบรนช์ที่สอง

81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้

ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก

หมายเหตุสุดท้าย

สิ่งสุดท้ายที่ต้องทำคือการคัดลอกบันทึกย่อจากการกระทำที่เชอร์รี่เลือก ใช้ git notes คัดลอก <cherry-picked commit hash> <new-commit-hash> เพื่อคัดลอกบันทึกใด ๆ ที่ทำขึ้นในการคอมมิตดั้งเดิม

นอกจากนี้ อย่าลืมแก้ไขข้อขัดแย้งในการผสานที่อาจเกิดขึ้นตามมาด้วย
ในบทความนี้ เรามาดูกระบวนการที่ใช้คำสั่ง git ขั้นสูงที่เรียกว่า git cherry-pick ใช้เมื่อคุณต้องการคอมมิตจากสาขาหนึ่งและเพิ่มไปยังสาขาอื่น