Gibhub คืออะไร?

คือเว็บไซต์ที่ใช้ host โปรเจ็คหรือโฟลเดอร์ (repository) ที่เราเก็บโค๊ดที่เราเขียนไว้ เรียกว่าเป็น remote repository ซึ่งเว็บไซต์อื่นที่เป็น remote repository เช่น bitbucket, gitlab เป็นต้น

สร้างบัญชี Github

สร้างบัญชี Github ที่นี่

ติดตั้ง Git

ในระบบปฏบัติการ macOS จะมี Git ติดตั้งมาให้อยู่แล้ว เราสามารถเช็คได้โดยใช้คำสั่งต่อไปนี้ใน terminal

% git --version

เมื่อกด return จะพบเวอร์ชั่นของ git บนเครื่องของเรา หากไม่พบ git สามารถดูวิธีติดตั้ง git ได้ที่นี่

Generate SSH Key

เราจำเป็นต้องสร้าง key สำหรับ GitHub เพื่อใช้ยืนยันตัวตน SSH Keys จะมาเป็นคู่ อันหนึ่งเป็น public key ที่จะถูกแชร์กับผู้ให้บริการอื่นๆ ส่วนอีกอันหนึ่งเรียกว่า private key จะเก็บอยู่บนเครื่อง machine ของเราเท่านั้น หาก keys ทั้งสองอันตรงกัน เราจะสามารถเข้าระบบได้

วิธี generate key

ดูวิธี generate key สำหรับทุกระบบปฏิบัติการที่นี่

ระบบปฏิบัติการของเราคือ macOS X ให้เปิด terminal และพิมพ์คำสั่งต่อไปนี้

% ssh-keygen -t rsa

เมื่อกด enter เราจะได้ข้อความขึ้นดังนี้

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/maria/.ssh/id_rsa): 

/Users/maria/.ssh/id_rsa คือ default โฟลเดอร์ สถานที่ที่มันจะเก็บ key ไว้ หากต้องการใช้ default ให้กด return ต่อมาเราจะได้ข้อความต่อไปนี้

Created directory '/Users/maria/.ssh'.
Enter passphrase (empty for no passphrase):

มันสร้าง directory เรียบร้อยแล้วในโฟลเดอร์ default และให้เราใส่ passphrase หรือรหัสผ่าน หากเราไม่ต้องการใส่รหัสผ่านให้กด return หากต้องการใส่รหัสผ่านให้กดรหัสผ่านก่อน แล้วกด return จากนั้นมันจะให้เรายืนยันรหัสอีกครั้ง ก็กด return อีกคร้ัง

ต่อมาจะขึ้นข้อความดังต่อไปนี้

Your identification has been saved in /Users/maria/.ssh/id_rsa.
Your public key has been saved in /Users/maria/.ssh/id_rsa.pub.
The key fingerprint is:

ด้านล่างจะเป็น key ของเรา นอกจากนั้นมันยังสร้างรูปภาพ key ของเราให้ด้วยที่

The key's randomart image is:

จากนั้นเราต้องเข้าไปในโฟลเดอร์ๆหนึ่งเพื่อดูว่ารหัส key ของเราคืออะไร ให้ใช้คำสั่ง cd ซึ่งย่อมาจาก change directory ดังต่อไปนี้

% cd ~/.ssh

จากนั้นใช้คำสั่ง ls เพื่อดูว่าในโฟลเดอร์นี้มีไฟล์อะไรบ้าง

% ls

เราควรจะมีไฟล์ดังต่อไปนี้

id_rsa		id_rsa.pub

จากนั้นให้ใช้คำสั่ง cat เพื่อดู key ในไฟล์ id_rsa.pub

% cat ./id_rsa.pub

เมื่อกด return เราจะได้ key ขึ้นต้นด้วย ssh-rsa ให้คัดลอกมาทั้งหมด

วิธีสร้าง new SSH Key บน Github

เข้าสู่ระบบ Github และไปที่ settings มันจะปรากฏหน้าต่อไปนี้

กดที่ SSH and GPG keys จากนั้นกดปุ่มสีเขียวที่เขียนว่า new SSH key

ช่อง title ให้ใส่ชื่อสำหรับ key ของเรา ตั้งชื่ออะไรก็ได้ ส่วนช่อง key ให้ใส่ key ที่เรา copy มาจากจาก terminal เมื่อกี้ จากนั้นกด add SSH key

เมื่อเรา add key ลงบน Github แล้ว เราต้องบอกให้เครื่องของเรารู้ด้วยว่าเราเพิ่ม key ลงไป ให้ใช้คำสั่งต่อไปนี้

% ssh-add ./id_rsa

แล้วกด return หากมันถามหา passphrase ก็ให้กรอกรหัสผ่านที่เราตั้งค่าไว้ จากนั้นมันจะขึ้นข้อความประมาณนี้

Identity added: ./id_rsa (maria@Marias-MacBook-Air.local)

Git init

บนหน้า terminal ให้เข้าไปในโฟลเดอร์โปรเจ็คที่เราเขียนโปรแกรมไว้ด้วยคำสั่ง cd จากนั้นให้พิมพ์คำสั่งต่อไปนี้

% git init

ซึ่งมันจะปรากฏข้อความดังต่อไปนี้

Initialized empty Git repository in /Users/maria/project/.git/

ข้อความนี้บอกให้เรารู้ว่ามันสร้าง Git repository ที่จะใช้ track โค๊ดของเราแล้วนะที่ directory นี้ แต่มันยังว่างอยู่นะ

จากนี้เราต้องใช้คำสั่ง add เพื่อบอก Git ว่าเราต้องการให้ Git track ไฟล์ต่อไปนี้ของเรา เนื่องจากเราต้องการเก็บไฟล์ทั้งหมดที่มีในโฟล์เดอร์เลย เราไม่ได้ต้องการเก็บและ track แค่ไฟล์เดียว แทนที่จะพิมพ์ชื่อไฟล์หรือโฟลเดอร์ เราจะพิมพ์เครื่องหมายดอกจันทร์ด้านหลัง git command add แทน

% git add *

เมื่อกด return ให้เช็คสถานะไฟล์ทั้งหมด ด้วยคำสั่งต่อไปนี้

% git status

มันจะขึ้นข้อความแสดงชื่อไฟล์ต่างๆ พร้อมกับบอกสถานะไฟล์ว่าเราได้เปลี่ยนแปลง ลบ หรือเพิ่มไฟล์อันไหนหรือเปล่า เนื่องจากอันนี้เป็นการ add ครั้งแรก มันจะขึ้นสถานะ new file ทั้งหมด และระบุด้านบนว่ามันยังไม่ได้จัดเก็บหรือ commit การเปลี่ยนแปลงเหล่านี้ มันแค่ track ให้เราดูก่อน

ต่อมาเราต้องจัดเก็บการเปลี่ยนแปลงเหล่านี้ ให้ใช้คำสั่ง git commit และเพิ่มคอมเม้นท์ว่า การ commit ครั้งนี้ เราทำอะไรไป เช่น สร้างไฟล์ใหม่ แก้ไขไฟล์ไหน หรือลบไฟล์ไหน เป็นต้น เช่น ในตัวอย่างใส่คอมเม้นท์ว่า “new files”

% git commit -m "new files"

จากนั้นมันขึ้นแสดงผลให้รู้ว่าเรา commit เรียบร้อยแล้วนะ และมันสร้าง git repository ใน directory โปรเจ็คของเราแล้ว หากเราเปิดดูโฟลเดอร์ที่เราเก็บโปรเจ็คก็จะเห็นไฟล์ .git อยู่ข้างใน

เก็บไฟล์ลง Github

ให้เข้าสู่ระบบ Github ไปที่ your repositories และสร้าง repository ใหม่

ตั้งชื่อ repository name เป็นอะไรก็ได้ จากนั้นให้เลือก public หรือ private และกด create repository โดยไม่ต้องคลิ๊กช่องไหนเพิ่ม (เราเลือก public ตามค่า default เลย)

ในหน้าถัดไป ให้ดูบรรทัดที่เขียนว่า

…or push an existing repository from the command line

และให้ copy บรรทัดทั้งสามบรรทัดด้านล่างลง terminal ทีละบรรทัด เมื่อเสร็จแล้วจะขึ้นข้อความดังนี้

Are you sure you want to continue connecting (yes/no/[fingerprint])?

ให้พิมพ์ yes และกด return

หากมันขึ้นว่า done ทุกอย่าง แสดงว่าโค๊ดใน directory ที่เราเลือกถูก save ลงบนเว็บไซต์ Github เรียบร้อยแล้ว