Git ให้คุณดูแลการพัฒนาหลายบรรทัดสำหรับโปรเจ็กต์ แนวการพัฒนาเหล่านี้เรียกว่าสาขา คุณสามารถดึงเวอร์ชันล่าสุดของสาขาจากที่เก็บระยะไกลได้อย่างอิสระ หรือคุณสามารถดึงเวอร์ชันล่าสุดของสาขาทั้งหมดพร้อมกัน
ในคู่มือนี้ เราจะพูดถึงวิธีใช้คำสั่ง git fetch –all และ git pull –all เพื่อดึงการเปลี่ยนแปลงจากที่เก็บระยะไกล
การแตกแขนงคืออะไร
สมมติว่าเรากำลังทำงานบนเว็บไซต์บล็อก เราจะเพิ่มคุณลักษณะในบล็อกที่ให้ผู้ใช้แสดงความคิดเห็น เราไม่ต้องการให้ฟีเจอร์นี้เป็นส่วนหนึ่งของเวอร์ชันหลักของโปรเจ็กต์ของเรา เนื่องจากเรายังคงดำเนินการอยู่
เราสามารถใช้สาขา Git สำหรับสิ่งนี้ เราสามารถสร้างสาขาที่เรียกว่า "ความคิดเห็น" เพื่อจัดเก็บรหัสทั้งหมดสำหรับคุณลักษณะการแสดงความคิดเห็นของเรา วิธีนี้จะช่วยให้เราทำงานกับคุณลักษณะการแสดงความคิดเห็นโดยไม่ต้องเปลี่ยนโค้ดเบสเวอร์ชันหลักที่ใช้งานบนเว็บไซต์
สาขาสามารถจัดเก็บในเครื่องหรือจากระยะไกล หากคุณกำลังทำงานในเวอร์ชันท้องถิ่นของโปรเจ็กต์ สาขาจะเป็นสาขาในพื้นที่ สาขาระยะไกลจะถูกเก็บไว้กับเวอร์ชันหลักของโครงการ
Git:ดึงข้อมูลทุกสาขา
เรากำลังดำเนินการโครงการที่เรียกว่าบล็อกไซต์ โปรเจ็กต์นี้ประกอบด้วยสองสาขา:origin master และ origin dev
สาขานักพัฒนาซอฟต์แวร์มีคุณสมบัติทดลองทั้งหมดที่เรากำลังใช้งานอยู่ เราคิดว่าผู้ทำงานร่วมกันรายอื่นได้ผลักดันการเปลี่ยนแปลงทั้งสองสาขา เราต้องการตรวจสอบให้แน่ใจและดึงข้อมูลเมตาสำหรับการเปลี่ยนแปลงใด ๆ หากมีการเปลี่ยนแปลง
เราสามารถทำได้โดยใช้คำสั่งดึงข้อมูล คำสั่ง fetch บอกให้ Git ดึงข้อมูลเมตาจากรีโมตแบรนช์ในการอัพเดทล่าสุด คำสั่งดึงข้อมูลไม่อัพเดตไฟล์ที่เก็บไว้ในเวอร์ชันโลคัลของที่เก็บ
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
ในการติดตามสาขาระยะไกลทั้งหมดและดึงข้อมูลเมตาสำหรับสาขาเหล่านั้น เราสามารถใช้คำสั่ง git fetch ด้วยแฟล็ก –all:
git fetch --all
คำสั่งนี้ส่งคืน:
Fetching origin remote: Enumerating objects: 5, done. remote: Counting objects: 100% (5/5), done. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (3/3), done. From https://github.com/career-karma-tutorials/blog-site 3fcea0c..da74d68 dev -> origin/dev
คำสั่งดึงข้อมูลได้ดึงการเปลี่ยนแปลงทั้งหมดที่เราทำกับที่เก็บระยะไกลของเรา คำสั่งดึงข้อมูลรู้ว่าสาขา dev ระยะไกลของเรามีการเปลี่ยนแปลงที่เราไม่มีในเครื่องของเรา เราเพิ่งดึงข้อมูลเมตาสำหรับการคอมมิตเหล่านั้น
เราสามารถดึงข้อมูลเมตาสำหรับแต่ละสาขาโดยใช้ git fetch origin <branch-name>
คำสั่ง
Git:ดึงทุกสาขา
จะทำอย่างไรถ้าคุณต้องการอัปเดตสำเนาการทำงานในพื้นที่ของคุณรวมทั้งดึงข้อมูลเมตา นั่นคือสิ่งที่คำสั่ง git pull มีประโยชน์
ตอนนี้เราทราบแล้วว่ามีการเปลี่ยนแปลงในที่เก็บของเรา เรายินดีที่จะรวมการเปลี่ยนแปลงเหล่านี้เข้ากับที่เก็บในเครื่องของเรา ในการดาวน์โหลดการเปลี่ยนแปลงลงในเครื่องของเรา เราจำเป็นต้องใช้คำสั่ง git pull:
git pull --all
เราใช้แฟล็ก –all เพื่อระบุว่าเราต้องการดึงการเปลี่ยนแปลงจากทุกสาขา คำสั่งของเราส่งคืน:
Fetching origin remote: Enumerating objects: 5, done. remote: Counting objects: 100% (5/5), done. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (3/3), done. From https://github.com/career-karma-tutorials/blog-site 3fcea0c..da74d68 dev -> origin/dev Updating 3fcea0c..da74d68 Fast-forward README.md | 1 + 1 file changed, 1 insertion(+)
คำสั่ง git pull จะรันคำสั่ง git fetch ก่อนเพื่อตรวจสอบการเปลี่ยนแปลง การดำเนินการดึงข้อมูลจะส่งคืนข้อมูลเมตาสำหรับการคอมมิตของเรา จากนั้นคำสั่ง git pull จะดึงการเปลี่ยนแปลงทั้งหมดที่เราทำกับที่เก็บระยะไกลของเราและเปลี่ยนไฟล์ในเครื่องของเรา
เราจะเห็นว่าไฟล์ README.md ถูกเปลี่ยนในที่เก็บระยะไกลของเรา ตอนนี้เราได้ดำเนินการดึงแล้ว เรามีการเปลี่ยนแปลงในเครื่องของเรา
ในการดึงรหัสจากสาขาหนึ่ง เราสามารถใช้คำสั่ง git pull origin
บทสรุป
คำสั่ง git fetch –all ดึงข้อมูลเมตาในแต่ละการเปลี่ยนแปลงที่ทำกับสาขาทั้งหมดในที่เก็บ คำสั่ง git pull –all ดาวน์โหลดการเปลี่ยนแปลงทั้งหมดที่ทำในทุกสาขาไปยังเครื่องท้องถิ่นของคุณ
ตอนนี้คุณมีความรู้ที่จำเป็นในการดึงทุกสาขาจาก Git อย่างมืออาชีพแล้ว!