Notes & software courses · Free to learn
Aph's Blog
On this page

Remote, GitHub & push/pull

👋 อ่านฟรีทั้งหมดบน Aph's Blog — เนื้อหาภาษาไทย ทำตามทีละหน้าใน sidebar ได้เลย หากมีข้อเสนอแนะหรืออยากให้เพิ่มหัวข้อไหน บอกได้เสมอ

เก็บโค้ดบนเซิร์ฟเวอร์กลาง (เช่น GitHub) แล้ว push/pull เพื่อทำงานร่วมกับคนอื่น

จนถึงตอนนี้ git อยู่บนเครื่องเราคนเดียว remote คือสำเนา repo บนเซิร์ฟเวอร์กลาง (เช่น GitHub) ที่ทีมใช้ร่วมกัน — push ส่งงานขึ้นไป, pull ดึงงานคนอื่นลงมา

เชื่อม repo กับ remote

bash
# เชื่อม repo เครื่องเรากับ remote ชื่อ origin
git remote add origin https://github.com/user/repo.git
git remote -v               # ดู remote ที่เชื่อมไว้

# push ครั้งแรก (ตั้ง upstream ด้วย -u)
git push -u origin main

# ครั้งต่อไป push สั้น ๆ
git push

clone, push, pull, fetch

คำสั่งทำอะไร
git clone <url>ก็อป repo จาก remote มาทั้งหมด
git pushส่ง commit ของเราขึ้น remote
git pullดึงงานใหม่จาก remote + รวมเข้าของเรา
git fetchดึงงานใหม่มาดูก่อน (ยังไม่รวม)
bash
git clone https://github.com/user/repo.git   # ก็อปมาเริ่มงาน
git pull                                     # ดึงงานล่าสุดก่อนเริ่มทำ
# ...ทำงาน, commit...
git push                                     # ส่งขึ้นไป
pull = fetch + merge

git pull จริง ๆ คือทำ 2 อย่างต่อกัน: fetch (ดึง commit ใหม่จาก remote) แล้ว merge (รวมเข้า branch เรา) ถ้าอยากดูก่อนว่ามีอะไรเปลี่ยนค่อยรวม ให้ fetch แล้วดูก่อน

การยืนยันตัวตน (Auth)

GitHub ไม่ให้ใช้รหัสผ่านธรรมดาแล้ว ต้องใช้ Personal Access Token (PAT) แทนรหัสผ่านตอน push ผ่าน HTTPS หรือใช้ SSH key — ตั้งครั้งเดียวแล้วใช้ได้ตลอด

สรุปหัวข้อนี้

  • remote = repo บนเซิร์ฟเวอร์กลาง (เช่น GitHub) ชื่อปริยาย origin
  • git clone ก็อปมาเริ่ม, git push ส่งขึ้น, git pull ดึงลง
  • pull = fetch + merge; fetch ดึงมาดูก่อนไม่รวม
  • GitHub ใช้ Personal Access Token หรือ SSH key แทนรหัสผ่าน
แบบฝึกหัด

1) สร้าง repo บน GitHub แล้วเชื่อมกับโปรเจกต์เครื่องเรา push ขึ้นไป 2) clone repo ลงมาอีกโฟลเดอร์ 3) แก้ใน clone แล้ว push กลับ พร้อม pull ในโฟลเดอร์เดิม 4) อธิบายความต่างของ fetch กับ pull