การทำงานกับหลายสาขาพร้อมกันในที่เก็บข้อมูลเดียว

Nov 29 2022
ในโลกที่สมบูรณ์แบบ นักพัฒนาทุกคนควรมุ่งความสนใจไปที่งานหรือเรื่องราวเดียว โดยไม่ต้องสลับไปมาระหว่างบริบทต่างๆ มาเผชิญหน้ากันที่ไม่ค่อยเกิดขึ้นในปัจจุบัน
ภาพถ่ายโดย Suganth บน Unsplash

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

ความต้องการ:

ในการเริ่มแผนผังงาน คุณต้องมีที่เก็บเริ่มต้น ซึ่งเป็นทางเลือกที่มีหลายสาขา

ตัวอย่างเช่น ลองพิจารณาพื้นที่เก็บข้อมูลที่มีสามสาขา list-users-API, สาขาคุณลักษณะที่เกิดขึ้นเป็นสาขาที่ใช้งานอยู่ในปัจจุบัน, mainสาขาและuser-unable-to-edit-content, สาขาข้อบกพร่องเพิ่มเติม สถานการณ์ที่เป็นไปได้คือสาขาข้อผิดพลาดไม่ผ่านการตรวจสอบโค้ดและจำเป็นต้องทำการเปลี่ยนแปลงเพิ่มเติม มีสองวิธีที่เราสามารถดำเนินการได้จากที่นี่:

  1. เก็บความคืบหน้าทั้งหมดของเราและสลับไปที่สาขาจุดบกพร่องเพื่อใช้การเปลี่ยนแปลงที่จำเป็น
  2. โคลนที่เก็บในโฟลเดอร์อื่นและแก้ปัญหาโดยไม่ต้องซ่อน แต่ใช้เวลาพอสมควรในการดำเนินการ
  3. วิธีที่สามและขั้นสุดท้ายคือการใช้ git worktree รักษาความคืบหน้าปัจจุบันของเราในสาขาฟีเจอร์ และหลีกเลี่ยงการสลับทั้งหมด

การดำเนินการ:

ในการเริ่มต้น ให้ใช้คำสั่งต่อไปนี้เพื่อเริ่มต้นเวิร์กทรี :

$ git worktree add <path> [<commit-ish>]

การเตรียมผังงาน (การตรวจสอบ 'เนื้อหาที่ผู้ใช้ไม่สามารถแก้ไขได้')

หากคุณใช้git branchตอนนี้ คุณจะเห็น+สัญลักษณ์นำหน้าชื่อสาขา ในการเริ่มใช้เวิร์กทรี สิ่งที่เราต้องทำคือเปิดไดเร็กทอรีใหม่ภายในที่เก็บด้วย IDE ที่เราเลือก ตอนนี้เราสามารถผลักดันการเปลี่ยนแปลงสาขาข้อผิดพลาดควบคู่ไปกับการพัฒนาคุณลักษณะใหม่ เมื่อเราแก้ไขเสร็จแล้ว เราสามารถลบแผนผังงานโดยใช้:

$ git worktree remove <worktree>

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