วันจันทร์ที่ 11 กันยายน พ.ศ. 2560

Basic Git part 10

Git Remote

เราจะสร้าง project เล็กๆขึ้นมา จากนั้นก็จะนำมันไปเก็บไว้บน GitHub (แบบ public)

GitHub คืออะไร?
ง่ายๆก็คือที่เก็บไฟล์ของเรานั่นแหละ ซึ่ง online อยู่ใน internet หรือตามความหมายของมันเอง ก็ได้อธิบายไว้ว่า GitHub คือ code hosting platform สำหรับ version control ช่วยให้เพื่อนๆและคนอื่นๆทำงานร่วมกันไม่ว่าจะอยู่ที่ใดๆบนโลกใบนี้

ก็สมัคร GitHub ไปตามวิธีการ จะได้หน้านี้ขึ้นมาหลังจาก logged เรียบร้อยแล้ว


กดไปที่ปุ่ม start a project เลย ให้เราไปกำหนดพื้นที่ที่จะวาง project ของเราลงไปก่อน (บน GitHub) นั่นก็คือไปตั้งชื่อ repository name (อันความจริงแล้วที่เก็บจริงๆอยู่ตรงไหนบน server GitHub นั่นไม่ใช่สิ่งที่เราสนใจ) ผมขอใช้ชื่อว่า act-shop


เราจะได้สิ่งนี้มา ให้เรียกมันง่ายๆว่า remote URL หรือใครจะเข้าใจว่ามันคือ location ของ project ก็ไม่ผิด อย่างนั้นก็เรียกมันว่า remote repository ก็ย่อมได้


ตอนนี้เรามีสถานที่เก็บ project บน internet แล้วและพร้อมใช้งาน คำถามคือ ใช้งานอย่างไร?

จากที่เราเรียนรู้ร่วมกันมา (โดยไม่มีใครแย้ง) คือเรามีถังที่เรียกว่า repository เก็บไว้ที่เครื่องของเราถูกต้องไหม

"ถูกต้องครับ"

และเราเรียกถังใบนั้นว่า local repository ถูกต้องไหม?

"ถูกต้องค่ะ"

คือเล่นกับถัง (เรียกย่อๆว่า local repo) นี้แค่ใบเดียวมาตลอดใช่ไหม?

"แม่นแบ้ว"

เอาล่ะ ตอนนี้เราจะ copy เอาของในถังทั้งหมดที่อยู่แค่ในเครื่องของเราไปไว้ในถังที่มันอยู่ใน internet เพื่อแบ่งปันพัฒนามันกับเพื่อนๆหรือเก็บเป็นของส่วนตัวไว้เพื่อ clone มันมาพัฒนาต่อไม่ว่าเราจะอยู่ในที่ใดๆบนโลก


มาเริ่มสร้าง project ในเครื่องกันก่อน (เพราะตอนนี้เรายังไม่มีอะไรเลย) ผมสร้างไฟล์แรกชื่อ index.html แล้วเพิ่มโค้ดบางส่วนเข้าไป จากนั้น

git init
git add index.html
git commit -m "first commit"


สมมติว่าตอนนี้ของพร้อมแล้ว เราก็จะเอาของขึ้น remote หรือก็คือสถานที่ที่เราจะเอา project ไปวางไว้บน internet

แต่ก่อนอื่นมาดูภาพต่อไปนี้

***หมายเหตุ
ภาพนี้นำมาจาก https://greenido.wordpress.com/2013/07/22/git-101-useful-commands/

ตอนนี้ของอยู่ที่ (local) repository ถูกไหม ตามภาพคือเรากำลังจะ push ไปยัง remote repository

แต่ก่อนจะทำสิ่งนี้ บอกกับ .git ของเราก่อนว่า remote ที่เราเพิ่งไปสร้างขึ้นน่ะมันอยู่ที่ไหน และพอเอาขึ้นไปแล้วจะให้เรียก ณ สถานที่นั้น (url) ด้วยชื่อว่าอะไร (ตำราเรียก shortname) คำสั่งโดยทั่วไปก่อนจะ push ก็คือ

git remote add origin https://github.com/proSbeginner/act-shop.git

โดยที่
git remote add คือคำสั่งที่จะนำไปวาง ณ remote URL
origin คือชื่อที่เราตั้งขึ้น โดยจะตั้งว่าอะไรก็ได้
ส่วน https://github.com/pro... อะไรนี่ก็คือ remote URL


บอกตรงเลยว่าไม่มีอะไรเกิดขึ้นบน remote หรอก ลองตรวจสอบดูได้โดยการพิมพ์

git remote show origin


กลับไปดูภาพ Git flow diagram เราต้องใช้ push เพื่อส่งของจากเครื่องเราขึ้นสู่ GitHub ถูกต้องไหม พิมพ์ไป

git push origin master

โดยที่
git push คือคำสั่งนำของขึ้นไปวาง
origin คือชื่อ (shortname) ของ remote URL
ส่วน master คือชื่อ branch (ในที่นี้คือ branch แรกของเราเลยบน remote)


จัดไปตามที่มันขอ เสร็จแล้วก็จะได้แบบนี้



ตอนนี้ใครอยากจะ clone หรือ download เป็น .zip ไปใช้ก็ได้ ก็กดปุ่มสีเขียว (ด้านขวา) ที่เขียนว่า clone or download นั่นแหละครับ และนี่แหละคือการแชร์ project ล่ะ


ต่อไปเป็นภาค clone สมมติว่าที่เครื่องของเราไม่มีถัง repo เลยสักใบ ปรากฏว่าเราไปเห็น project ของเพื่อนหรือของใครก็ไม่รู้ (หรือของเราที่ไปฝากไว้กับ GitHub) บน internet น่าสนใจมาก อยากสอยเอามาดู ก็ให้เราไปกดปุ่มเขียวที่เขียนว่า clone or download นั่นแหละ แล้วก็คัดลอกเอา URL มันมา (จริงๆดาวน์โหลดลงมาเลยก็ได้ แต่ที่จะสาธิตนี้คืออยากใช้คำสั่ง git clone เท่านั้นเอง)

คัดลอก URL ที่เราสนใจก่อน


ตอนนี้ในเครื่องเรายังไม่มีอะไรเลย


พิมพ์ไปว่า

git clone https://github.com/proSbeginner/act-shop.git

โดยที่
git clone เป็นคำสั่งไป copy ถังบน remote (github server) มาทั้งใบ
ส่วน https://github.com/pro... ก็คือ remote URL



ตรวจด้วย git remote show พิมพ์

git remote show origin


เอาล่ะผมขอเอาภาพ Git flow diagram มาถามว่า ณ ตอนนี้เพื่อนๆเห็นถังกี่ใบ?


ตอบนะตอบ แต่ผมขอตัวไปนอนก่อน สวัสดี