Git and github 101 - พื้นฐาน git และ github
Tags: beginners, github, git, bash
Published: 2020-12-03 17:21:21


ก่อนอื่นต้องเล่าถึงการทำงานของ git ก่อน git คือ version control ตัวหนึ่งในท้องตลาดที่มีความนิยมสูงสุด ปกติ git จะอยู่บน Computer เราเป็นตัวควบคุมเวอร์ชั่นของงานเรา คุณเคยประสบปัญหากับการที่ต้อง Save ไฟล์ซำ้กันมั้ยเช่น Project-Final.pdf

พอเอาไปแก้ไขก็ไม่อยากจะเซฟทับไปเรื่อยๆก็เลยสร้างไฟล์ใหม่เป็น Project-final-2.pdf , Project-final-final.pdf ไปเรื่อยจน ตอนแรกในโฟล์เดอร์มี แค่ไฟล์เดียขนาด 20 MB ไปๆมา 500-600 MB

แล้วคราวนี้ที่มาของ Github ละ ทำไมเราต้องใช้ github ละ ในเมื่อไฟล์ก็อยู่บนเครื่อง และก็ใช้ git ควบคุมเวอร์ชั่น ไป ก็ต้องถามกลับว่าเคยทำไฟล์หายมั้ย อยู่ดีเครื่องพัง ฮาร์ดดิสก์ เจ๊ง!!!!!

นั่นแหละคือสิ่งที่ Github จะแก้ปัญหาได้คือ การทำไฟล์ไปวางไว้บน git server และ git และ github มีประโยชน์นอกจากจะเป็นตัวควบคุมเวอร์ชั่นแล้ว ยังสามรถทำแะไรได้อีกหลายอย่างเช่น Code Review , สามารถ Track การแก้ไข Code , issues , branch

## การติดตั้ง Git
![install](https://cdn-images-1.medium.com/max/800/1*EFFcU8rKLyDb7LB8XEr8AQ.png)

สามารถเลือกดาวน์โหลด ได้ตามระบบ ปฏิบัติการที่ใช้อยู่ได้เลย

หลังจากติดตั้ง git แล้วให้เป็น Teminal บน Mac,Linux หรือ Command Line บน Windows และทดลองใช้คำสั่งตามนี้
```
git --version
```

ในหน้า Command Line หรือ Termainl จะต้องแสดง version ของ git ประมาณภาพด้านล่างนี้

![teminal-1](https://cdn-images-1.medium.com/max/800/1*JERF-iMOv_RpMdw9vHXM-g.png)

หลังจากเราได้ทำการติดตั้ง และ ทดลองเรียนร้องแล้วเราจะมาลองดูฝั่งของ Github ดูบ้าง การใช้งาน github ต้องสมัครสมาชิกก่อน โดยเข้าที่เว็บ 
[https://github.com](https://github.com)

![github-regis](https://cdn-images-1.medium.com/max/800/1*dP_ypW-P5dQK-pvy5MbTXQ.png)

ให้สมัครสมาชิก ใส่ username , email , password และ ทำตามขั้นตอนที่ ทางเว็บเขาให้ทำ หลังสมัครสมาชิกเสร็จแล้วก็พร้องที่จะลองทำการ สร้าง Repository แรกในชีวิตแล้ว

ให้มาที่หน้า Profile ของตัวเองโดยการเข้า Link : https://github.com/ชื่อ username ที่ใช้ตั้งไปตอนสมัครสมาชิก นี่คือหน้าโปรไฟล์ของคุณ

![new-repo](https://cdn-images-1.medium.com/max/600/1*9iZCVaMWvTaUzAX2fqMFyg.png)

ให้มาที่ปุ่ม + ด้านบนขวาแล้วก็กด New Repioitory
หลังจากกดเข้าไปแล้วหน้าเว็บจะพาไปสร้าง Repo ของคุณ

![create-repo](https://cdn-images-1.medium.com/max/800/1*0dXVh5OBWg0eHWa6fQ6YJg.png)

ช่อง Repository name : ให้ใส่ชื่ออะไรก็ได้ แต่ตามปกติที่จะใส่กันคือ ชื่อ ของ Project ที่จะทำ

ช่อง Description : สามารถใส่รายระเอียดของ Project เข้าไป ( ใส่หรือไม่ก็ได้ )

Radio Button [ Public, Private ] ถ้าต้องการให้คนอื่นสามารถเข้าถึง Repo ของเราได้ ให้เลือก public แต่ถ้าหากไม่ต้องการให้เข้าถึง Repo ของเราก็ให้เลือก Private

ช่อง Initialize this repository with a README ยังไม่ต้องติ๊กก็ได้ แต่ถ้าใคร่อยากจะติ๊ก ก็เชิญได้ตามสบาย หลังจากทำทุกขั้นตอนแล้สก็ให้ก็ Create repository ได้เลย

หลังจากสร้างโปรเจ็ค ไปแล้วจะพบหน้าตาประมาณในภาพ กรณีที่ไม่ได้ติ๊ก Readme นะ

![test-repo](https://cdn-images-1.medium.com/max/800/1*J4KCcpO0ySoyxrehkS0PMw.png)

คราวนี้เรากลับมาที่คอมพิวเตอร์ของเรา ที่ผมจะยกตัวอย่างให้ดูนี้คือ ผมสร้างโฟล์เดอร์ใหม่ในคอม ในโฟล์เดอร์ ผมใส่ไฟล์ Reamme.md ไว้

ผม ใช้ Command line เข้าไปที่ โฟล์เดอร์ ที่ผมจะ push ไฟล์ขึ้นไป หาก โฟลเดอร์ ถูกสร้างขึ้นมาใหม่ ให้ใช้คำสั่ง
```
git init
```
เพื่อที่ทำการ initialize ตัว .git ขึ้นมา หลังจากใช้คำสั่ง init ไปแล้ว ให้ใช้คำสั่งที่จะทำการ add ไฟล์ คือ คำสั่ง
```
git add .
```
add และตามด้วย จุดคือ add ทุกไฟล์ แต่ถ้าหาต้องการ add เฉพาะบางไฟล์หรือบางโฟลเดอร์ ให้ใช้คำสั่ง
```
git add ชื่อโฟล์หรือโฟลเดอร์
```

หลังจาก Add เสร็จเราจะต้องทำการ Commit อธิบายแบบง่ายๆ คือ เหมือนแบบ add เสร็จ เราก็เอา ที่ add ไป แพ็คใส่กล่อง และแปะ ชื่อ และ ก็รหัสพัสดุ ประมาณนั้นแหละ โดยการใช้คำสั่ง
```
git commit -m "ข้อความที่อยากจะเขียน เอาไว้สื่อให้เราได้รู้ว่าเราทำอะไรไปบ้าง"
```

พอเรา commit เสร็จมันจะขึ้นประมาณนี้
![commit](https://cdn-images-1.medium.com/max/800/1*ycllH-9hf2Ij25p7mX2soA.png)

ตอนนี้เราก็ได้ version control บนเครื่องละ หลังจากที่ถ้ามีการแก้ไขไฟล์ก็ทำแค่ add . และก็ commit แต่คราวนี้อย่างที่บอกไปตอนแรกว่านี่เราแค่เก็บไว้บนเครื่องยังไม่ได้ทำการเอาไปเก็บบน github server

วิธีการเอาขึ้นไปบน github ก็คือ จะต้อง Remote เข้าไปก่อน อธิบาย Remote ง่ายๆคือ เหมือนการจูนให้ คอมเรา สัญญาณตรงกับ github repo ที่สร้างขึ้นมา อันนี้คืออธิบายแบบไม่ใช่เทคโนโลยีนะ

การ Remote ใช้คำสั่งตามนี้

```
git remote add origin https://github.com/ชื่อusername/ชื่อrepo 
```

พอหลังจาก Remote ไปแล้วก็ถึงขั้นตอนการ push ขึ้นไปบน github โดยการใช้คำสั่ง
```
git push -u origin master
```

มันจะถูก push ขึ้นไปอยู่บน master branch ตามภาพ

![push](https://cdn-images-1.medium.com/max/800/1*IRhscsT5Zpd_uXKsbEEs7w.png)

และถ้าเราลองกลับไปดูที่ browser ที่ repo เราลอง refresh ดู มันจะมีไฟล์เราขึ้นไปอยู่บน github เรียบร้อย ตามภาพด้านล่าง
![github.com](https://cdn-images-1.medium.com/max/800/1*IYmmF1BIRT2zyNjJ6FTquA.png)

แล้วหลังจากนี้ถ้าหารเราแก้ไขก็ทำตามขั้นตอนที่ผ่านมา คือ
```
1) add
2) commit
3) push
```

เท่านี้เราก็ทำ version control พร้อมกับเอาไปเก็บ บน github ได้เรียบร้อย เดียวตอนหน้าๆ เราจะลองมาสอนการ แตก branch และ อื่นๆอีกมากมายฝากติดตามด้วยนะครับ หากมีอะไรผิดพลาดประการใดขออภัย ณ ที่นี้
ติดตามเพื่มเติมที่

Github : [t6tg](https://github.com/t6tg)