🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

clone คืออะไร? วิธีคัดลอก GitHub Repository ของผู้อื่นมายัง PC ของคุณ

ในบทความที่ผ่านมา คุณได้เรียนรู้วิธีการอัปโหลด (push) โปรเจกต์ที่สร้างขึ้นบน PC ของคุณ (local) ไปยัง Repository บน GitHub ได้สำเร็จแล้ว ซึ่งหมายความว่าคุณได้เรียนรู้พื้นฐานการจัดการโค้ดของคุณด้วย GitHub แล้ว

หัวข้อในครั้งนี้คือรูปแบบที่ตรงกันข้าม นั่นคือ วิธีการคัดลอก Repository (โปรเจกต์) ของผู้อื่นบน GitHub มาไว้บน PC ของคุณทั้งหมด การดำเนินการนี้เรียกว่า "clone (โคลน)" นี่เป็นคำสั่งที่สำคัญและเป็นก้าวแรกสู่การใช้ประโยชน์จากโปรเจกต์โอเพนซอร์สที่ยอดเยี่ยมทั่วโลก หรือการเข้าร่วมการพัฒนาในทีม มาเรียนรู้วิธีการกันเลย!


`git clone` คืออะไร? ความแตกต่างจากการดาวน์โหลดทั่วไป

บนหน้า Repository ของ GitHub จะมีตัวเลือก "Download ZIP" จากปุ่มสีเขียว "Code" คุณอาจจะคิดว่า "ถ้าแค่คัดลอกไฟล์ แบบนี้ก็น่าจะพอแล้วไม่ใช่เหรอ?" แต่ `git clone` กับการดาวน์โหลด ZIP นั้น แม้จะคล้ายกัน แต่ก็แตกต่างกันโดยสิ้นเชิง

ถ้าจะเปรียบเทียบ การดาวน์โหลด ZIP ก็เหมือน "การได้รับสำเนาหน้าสุดท้ายของหนังสือเท่านั้น" ในขณะที่ `git clone` เหมือน "การได้รับหนังสือเล่มใหม่ทั้งเล่ม" ซึ่งจะทำให้เข้าใจได้ง่ายขึ้น


ขั้นตอนการทำ `git clone`

เอาล่ะ เรามาลองใช้คำสั่ง `git clone` เพื่อคัดลอก Repository บน GitHub มาไว้บน PC ของคุณกัน

ขั้นตอนที่ 1: คัดลอก URL ของ Repository ที่ต้องการโคลน

ขั้นแรก ให้เข้าไปที่หน้า GitHub ของโปรเจกต์ที่คุณต้องการคัดลอก ในตัวอย่างนี้ เราจะลองโคลน Repository ของ CSS framework ชื่อดังอย่าง "Bootstrap"

เมื่อเปิดหน้าเว็บแล้ว ให้คลิกที่ปุ่มสีเขียว "Code" จะมีตัวเลือกสำหรับคัดลอก URL แสดงขึ้นมา มีทั้ง HTTPS และ SSH แต่เนื่องจากเราได้ตั้งค่าคีย์ SSH ไปในครั้งที่แล้ว การใช้ URL ของ SSH จึงสะดวกกว่า การใช้ SSH จะช่วยให้คุณไม่ต้องป้อนรหัสผ่านเวลา push หรือ pull

[ภาพ: การคลิกปุ่ม "Code" บน GitHub Repository ของ Bootstrap และคัดลอก URL ของ SSH]

คลิกที่ไอคอนคัดลอกทางด้านขวาของ URL เพื่อคัดลอก URL ไปยังคลิปบอร์ด

ขั้นตอนที่ 2: รันคำสั่ง `git clone` ใน Terminal

จากนั้น เปิด Terminal (หรือ Git Bash สำหรับ Windows) แล้วย้ายไปยังตำแหน่งที่คุณต้องการบันทึกโปรเจกต์ เช่น บนเดสก์ท็อป หรือในโฟลเดอร์สำหรับพัฒนาอย่าง `projects`

เมื่อย้ายไปยังตำแหน่งที่ต้องการแล้ว ก็ถึงเวลาของคำสั่ง `git clone` ให้รันคำสั่งตามด้วย URL ที่คัดลอกมาเมื่อสักครู่ ดังนี้

git clone [วาง URL ของ SSH ที่คัดลอกมาที่นี่]

ในกรณีของการโคลน Repository ของ Bootstrap คำสั่งที่ใช้จะเป็นดังนี้

git clone git@github.com:twbs/bootstrap.git

เมื่อรันคำสั่งแล้ว การดาวน์โหลดจะเริ่มขึ้น อาจใช้เวลาสักครู่ขึ้นอยู่กับขนาดของ Repository

ขั้นตอนที่ 3: ตรวจสอบว่าการโคลนสำเร็จ

เมื่อคำสั่งทำงานเสร็จสิ้น โฟลเดอร์ที่มีชื่อเดียวกับ Repository (ในกรณีนี้คือ `bootstrap`) ควรจะถูกสร้างขึ้นในไดเรกทอรีปัจจุบันของคุณ ลองตรวจสอบดู

ls

เมื่อพบโฟลเดอร์ที่ชื่อ `bootstrap` แล้ว ให้ย้ายเข้าไปข้างใน

cd bootstrap

เพียงเท่านี้ Repository ของ Bootstrap ฉบับสมบูรณ์ก็พร้อมใช้งานบน PC ของคุณแล้ว โฟลเดอร์นี้ไม่จำเป็นต้องรัน `git init` อีกต่อไป เพราะมันอยู่ภายใต้การจัดการของ Git แล้ว


ขั้นตอนแรกหลังจากทำการโคลน

เมื่อคุณโคลน Repository มาแล้ว คุณสามารถเริ่มทำงานกับโปรเจกต์นั้นได้ทันที ต่อไปนี้คือคำสั่งบางส่วนที่มักใช้ก่อนเริ่มทำงาน

ตรวจสอบ Branch

หากต้องการตรวจสอบว่ามี branch งานอะไรบ้าง ให้ใช้คำสั่ง `git branch` การเพิ่มออปชัน `-a` จะทำให้คุณเห็น branch ของ Remote Repository ด้วย

git branch -a

ดึงข้อมูลการเปลี่ยนแปลงล่าสุด

Repository ที่คุณโคลนมา อาจมีการอัปเดตโดยคนอื่นในขณะที่คุณกำลังทำงานอยู่ ก่อนเริ่มงาน ควรใช้คำสั่ง `git pull` เสมอ เพื่อนำสถานะล่าสุดของ Remote Repository มายัง Local Repository ของคุณ

git pull

ข้อควรระวัง: หากต้องการมีส่วนร่วม ให้เริ่มจาก "Fork"

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

Fork คือฟังก์ชันที่คัดลอก Repository ของผู้อื่นมาไว้บนบัญชี GitHub ของคุณทั้งหมด เพื่อสร้าง Remote Repository ส่วนตัวของคุณเอง

ขั้นตอนพื้นฐานในการมีส่วนร่วมในโปรเจกต์โอเพนซอร์สมีดังนี้:

  1. ทำการ Fork โปรเจกต์ที่คุณต้องการมีส่วนร่วมบน GitHub
  2. ทำการ clone Repository ที่สร้างขึ้นในบัญชีของคุณจากการ Fork มายัง PC
  3. แก้ไขโค้ดบน PC ของคุณ แล้ว push ไปยัง Remote Repository ของคุณเอง
  4. บน GitHub, ส่ง "Pull Request" จาก Repository ของคุณไปยังโปรเจกต์ดั้งเดิม เพื่อขอให้นำการเปลี่ยนแปลงของคุณไปรวมไว้

ก่อนอื่นให้คุ้นเคยกับ `clone` ก่อน แล้วในขั้นต่อไปก็ลองท้าทายตัวเองด้วยการทำ Pull Request จาก Fork ดูนะ