Git & GitHub
Git & GitHub
Git = Version Control Software โดย โปรแกรม git bash มันจะใช้ Command Line ในการทำงาน (เหมือน Dos)
Github Desktop = Version Control Software โดยมันจะมี UI (เหมือน Window ในการทำงาน)
Version Control System (VCS) หรือ Source Control คือ เครื่องมือ ช่วยเก็บการเปลี่ยนแปลงของ Source Code โดยเก็บไว้ใน Database พิเศษ ทำให้มันสามารถย้อนกลับได้อย่างง่ายๆ (คล้ายๆ กับการ Undo ในโปรแกรม Microsoft Office แต่มันสามารถทได้ตลอด) และยังเหมาะสมกับการทำโปรเจคร่วมกันอีกด้วย
นอกจากนี้ ยังช่วยแก้ปัญหาเรื่อง การเพิ่ม Feature ใหม่ๆ ให้กับโปรแกรม (โปรแกรมก็จะยังคง รันอยู่ ขณะที่เราก็เริ่มต้นเขียนเวอร์ชั่นใหม่)
คำศัพท์ที่ต้องเข้าใจก่อน
- Repository หรือ Repo = ที่เก็บ ปกติจะเก็บไว้ 1 Project ตอนสร้างใหม่ ต้องมี
1. ชื่อ
2. Owner
3.Public/Private
โดยการจัดเก็บ Source Code เราจะเรียกว่า Check-In
ขณะที่การเรียกคืน Source Code ว่า Check-Out
โดยสามารถสร้าง ข้อความช่วยจำ (Log Massage) ได้อีกด้วย
Local Version Control System (คือการ Check-in และ Check-Out ในเครื่องของเรา Local Computer) แต่หากเป็นโปรเจคที่มีหลายคนร่วมกันทำงาน มันจะไม่สามารถอัพเดทได้
Centralize Version Control System คือการ Check-In และ Check-Out แบบรวมจะเก็บข้อมูลไว้บน Server แต่อันนี้ ระบบจะพยายาม Merge เข้าด้วยกัน เวปมี 3 หน้า ทำคนละหน้า ระบบก็จะรวมเข้ามาเท่านั้น แต่ถ้าซับซ้อน ต้องมีการ Approve จากลูกทีม
ข้อเสีย คือ หาก Server ล่ม จะทำให้งานชะงักทันที
Distributed Version Control System คือ การเก็บข้อมูลแบบกระจายศูนย์ ในที่นี้มันจะโคลน Database มาไว้ (เรียกว่า Rapository ) บนเครื่อง Local คือเราสามารถ Check In Out ได้จาก Local แต่มันจะไปอัพเดทรวมอีกครั้ง
คำสั่ง ls คือ list รายชื่อไฟล์
คำสั่ง git status จะเป็นการแสดงไฟล์ต่างๆ ในโฟลเดอร์อยู่สถานะไหน
เข้าใจวงจรการทำงานของ Git
1. Working Directory (Untracked) คือ โฟลเดอร์การทำงานทั่วไปที่ยังไม่ถูก Git ตรวจสอบ เป็นโฟลเดอร์ทั่วไปใน Windows ได้เลย
หากเข้าด้วย git Bash จะต้องคลิกขวา แล้วเลือก git bash here
คำสั่ง สร้างไฟล์ touch filename
คำสั่ง Help คือ git command -help
2. Working Directory (Tracked) เมื่อใช้ Git init ก็เหมือนกับให้ Git เข้ามาตรวจสอบ
คำสั่ง ให้ Track คือ git init (มันจะสร้าง Folder .git ไว้ท้ายโฟลเดอร์ดังกล่าว)
คำสั่ง ตรวจสอบสถานะ git status (มันจะแจ้งว่า ตรวจสอบไฟล์ไหนแล้วบ้าง ถ้ายังไม่ถูก Track มันจะเป็นส่วนของ Untracked แต่ถ้า Track แล้วจะอยู่ส่วนนี้)
มันจะมี 3 status
2.1 Modified คือ เริ่มต้น แต่ยังไม่ได้จัดเก็บ
2.2 Staged จัดเก็บเพื่อจัดทำเวอร์ชั่นแล้ว (จะอยู่ในส่วน 3)
2.3 Commited ยืนยันเก็บไฟล์ไว้ใน Repository แล้ว (จะอยู่ในส่วน 4)
3. Staging Area เมื่อคุณเขียนโปรแกรมไปถึง MileStone หรือ เสร็จสิ้นแล้ว คุณควรจะ Add file เข้าไปใน Staging Environment นั่นคือ มันพร้อมที่จะ Commit เพื่อส่งไปยัง Repository แล้ว
เมื่อใช้ Git add = Git จะเริ่มเก็บเป็น Version และประวัติการแก้ไข
คำสั่งคือ git add * หรือ git add --all คือการเพิ่มทุกไฟล์ (ไฟล์จะขึ้นสถานะเป็น Commited แต่มันจะขึ้นซ้อนอีกทีว่า ถ้าต้องการเอาออกจาก Unstaged คือมันยังไม่ถูก Commit เพื่อขึ้น Repository )
ดังนั้นเราต้องยืนยันด้วยคำสั่ง git commit
การเก็บข้อมูลเวอร์ชั่นถาวร git commit -m "log massage"
- m จะเป็นการบันทึกช่วยจำ เกี่ยวกับเวอร์ชั่น
เมื่อใช้ git commit แล้ว จะได้ Sha-1 Hash มันจะเป็นตัวเลข ประจำเวอร์ชั่น (มี 40 ตัวอักษร แต่เวลาอ้างอิงเราจะใช้แค่ 7 ตัวอักษรแรกเท่านั้นก็ได้)
-a คือการข้าม Staging Environment (มันเป็นการเสียเวลาเปล่าๆ ) มันสามารถเอาขึ้น Repository ได้เลย
4. Local Repository
คำสั่งตรวจสอบ git status (ถ้า Commit ไปหมดแล้วจะไม่โชว์อะไรเลย)
คำสั่งเอาออก คือ git rm -r --cached . (เอาไฟล์ออกทั้งหมดในโฟลเดอร์)
คำสั่ง ตรวจเวอร์ชั่น git log
คำสั่ง git log จะบอกแค่ Commit เลขที่อะไร (Sha1 hash) ใครเป็นคน Commit และเวลาอะไร รวมถึง Message ที่สร้างไว้
5. Remote Repository
หลังจากเราสร้าง Local และ Remote Repository เสร็จเรียบร้อยแล้ว เราจะต้อง push ขึ้นไปบน Remote Repository
โดยตรง Quick Setup จะให้ URL มา 1 อัน เราก็ Copy มาแล้วมาใส่ ในคำสั่ง git remote add origin
git remote add origin https://github.com/w3schools-test/hello-world.git
ถึงจุดนี้ มันจะมี Code ขึ้นไปบน Remote Repository เรียบร้อยแล้ว
Git & GitHub
Git = Distributed Version Control System แบบหนึ่ง แต่มันจะมี Local Rapository (Git) และ Remote Rapository (Git Host หรือ Git Hub)
Local Repository = การเก็บ Code ไว้ในเครื่องของเรา (ไม่จำเป็นต้องต่ออินเตอร์เน็ตตลอดเวลา) เมื่อเราต้องการ Publish หรือ Push ไปเก็บบน Server หรือ Cloud ก็คือ Remote Repository (GitHub) ซึ่งเป็นที่ที่ ในทีมสามารถดึงออกมา (Pull) ออกมาใช้ร่วมกันได้
เริ่มต้น สมัครใช้งาน Git
เราจำเป็นต้องมี Sign in ก่อนเข้าใช้งาน
การสร้าง Remote Repository
1.สร้าง Repository Name (ตั้งชื่อ ห้ามซ้ำกับชื่อเดิมที่เคยสร้างไว้)
2. การเข้าถึง ให้เลือก Public(ใครก็เข้าถึงได้) หรือ Private (เฉพาะคนที่เกี่ยวข้อง)
ถึงตรงนี้ เราก็สามารถมีพื้นที่ Remote Repository สำหรับเก็บไว้ที่ GitHub ได้แล้ว
ประเด็นสำคัญสำหรับ Remote Repository
- มันจะให้ https หรือ ssh มาให้ไปกรอกใน โปรแกรม Git (ในเครื่องเรา)
- ในส่วนของ Danger Zone มันจะสามารถ 1.Delete ได้ 2. เปลี่ยนเป็น Public/Private(ต้องยืนยัน)
ลงโปรแกรม Git บน Local
ไปที่ Git-scm.com ก็จะมี โปรแกรมให้ดาวน์โหลด(เลือกตาม Platform ) โดยตอนลง แนะนำสำหรับมือใหม่ไม่ต้องทำอะไร ให้กด Next ไปเรื่อยๆ ได้เลย
จนถึง Default editor (ตัวที่ใช้เขียนโปรแกรม) ก็ให้เลือกตัวที่ใช้งานได้เลย
สุดท้าย เราจะได้โปรแกรม Git Bash สำหรับใช้งาน
การใช้งาน Git Bash
เมื่อเปิดการใช้งาน จะเป็นเหมือน Dos ดังนั้นต้องจำคำสั่ง
ตรวจสอบ Local Version
git --version
clear clear คำสั่งทั้งหมดบนหน้าจอ
การตั้งค่า Config Local Git
git config --list (ดูว่า ตั้งค่าอะไรไว้บ้าง)
git config --global user.email "aaa@hotmail.com" (การตั้งค่า Email)
git config --global user.name "aaaa" (การตั้งชื่อ User)
Github
การตั้งค่า Pycharm ให้เชื่อมกับ Github
1. หา Get from Version Control (VC)
2. เลือก Github
3. มันจะมีให้เลือกเป็น Login หรือ ใส่ Token
กรณีเราต้องการเชื่อมต่อให้เรากด ได้เลย
กรณีเราเขียน Project เรียบร้อยแล้ว เราต้องการ upload
1. Setting Project >> Version Control >> Github >> Login Github
แล้วขึ้นไปกด push ด้านบน แล้วใส่ url จากเวป github ที่เราได้มา (ได้จากหน้า code ของ repo )
ความคิดเห็น
แสดงความคิดเห็น