การ Clone git กับ SSH เหมาะสำหรับใช้ในกรณีไหน

บางคนสงสัยว่าการ clone repo แบบ https กับ ssh ต่างกันยังไง ในเมื่อได้ไฟล์เหมือนกัน ?

คำตอบคือ ได้ไฟล์มาเหมือนกันแต่ทว่า ไฟล์ที่ได้มาจะครบมั้ยนั้นอีกเรื่องหนึ่ง

เพราะในบาง repo มีการกำหนด ssh เอาไว้ ถ้าหาก clone แบบ https แล้วไฟล์ที่ได้มาจะไม่ครบและกลายเป็น folder ว่างเปล่า !!!

ตัวอย่าง repo จาก : https://github.com/azavea/fastdao

สังเกตุ @ ตบท้ายด้วยรหัส ซึ่งหมายความว่าเป็นโฟลเดอร์แบบ ssh ถ้าหากโหลดมาแบบ https จะไม่สามารถโหลดไฟล์ข้างในได้ ถ้าต้องการไฟล์ครบสมบูรณ์ต้องใช้ ssh เท่านั้น !! ซึ่งบทความนี้จะกล่าวถึงการใช้งานพร้อมทั้งแนะนำการใช้ Git Extension ด้วย

เตรียมความพร้อม

  • สิ่งเดียวที่ต้องมีคือ Git Extension (รวมทุกอย่างใน Packages)สามารถดาวน์โหลดได้ที่ http://gitextensions.github.io
  • เมื่อทำการติดตั้งและรันโปรแกรมจะเป็นดังรูป
คำถาม : ทำไมถึงไม่ใช้ Command line ?
คำตอบ : ขั้นตอน ssh มันเยอะเลยใช้แบบ GUI รวดเร็วกว่า แถมมันมีทุกอย่างใน packages แล้ว

เริ่มต้นการใช้งาน

  1. ก่อนอื่นให้ทำการ Generate SSH key โดยใช้ Git Extension → Tools → PuTTY → Generate or import key แล้วให้ทำตามดังรูปโดยการขยับเมาส์จนครบ 100%

2. เมื่อ generate key ครบเสร็จ 100% แล้ว จะปรากฏดังรูป ซึ่งเราจะได้ทั้ง Private Key และ Public Key อาจจะกำหนด passphrase ความปลอดภัยด้วยก็ได้แล้วแต่นะ

3. ทำการบันทึกทั้งไฟล์ Public Key และ Private Key (อันนี้สำคัญเก็บให้ดี)

4. ทำการนำรหัส Public Key ไปใส่ใน Github Account ของเราเอง โดยให้เข้าไปที่ Settings → SSH and GPG keys ดังรูป

5. จากนั้นให้ทำการ Start Peageant โดยเข้าไปที่ Git Extension → PuTTY → Start authentication agent

6. ทำการ Add Private Key เข้า Peageant agent จากที่ได้ generate เอาไว้

7. ขั้นตอนต่อไปทำการเลือกหา repo สักอันจาก github (เอาที่มันมีแบบ ssh นะ) สำหรับตัวอย่างในที่นี้เลือกเป็น git@github.com:azavea/fastdao.git

8. จากนั้นให้เริ่มระบวนการ clone โดยเข้าไปที่ Git Extension → Start → Clon repository และรอจนกว่าเสร็จสิ้นถืออันเป็นเสร็จพิธี