การใช้ Git บน Linux
ยินดีต้อนรับสู่คู่มือสำหรับผู้เริ่มต้นในการใช้ Git บน Linux! คู่มือนี้จะช่วยให้คุณเริ่มต้นใช้งาน Git และ GitLab และเข้าใจพื้นฐานของเครื่องมือเหล่านี้
ภาพรวม Git
โค้ดที่ใช้สร้างแอปพลิเคชันจะถูกเก็บไว้ในชุดของโฟลเดอร์และไฟล์บนระบบของคุณ Git เป็นแอปพลิเคชันที่ช่วยให้เราสำรองข้อมูล แชร์ และคัดลอกชุดไฟล์นั้นได้ Git เป็นระบบควบคุมเวอร์ชันที่ช่วยให้คุณติดตามการเปลี่ยนแปลงของโค้ดและทำงานร่วมกับผู้อื่นได้ เป็นเครื่องมือที่ทรงพลังและใช้กันอย่างแพร่หลายในชุมชน open source GitLab เป็นแพลตฟอร์มบนเว็บที่ให้คุณโฮสต์และจัดการ repo ของ Git ออนไลน์ ทำให้การทำงานร่วมกันและติดตามการเปลี่ยนแปลงของโค้ดเป็นเรื่องง่าย
Repository คืออะไร?
repo ย่อมาจาก repository คือโฟลเดอร์ในเครื่องที่ Git จัดการให้ พร้อมกับสำเนาออนไลน์ repo ของ GitLab คือชุดของไฟล์และโฟลเดอร์ที่ประกอบเป็นโปรเจ็กต์ สามารถมี branches ซึ่งเป็นสำเนาอิสระของโปรเจ็กต์เดียวกันได้ branch คือเวอร์ชันแยกของโปรเจ็กต์ที่ให้คุณแก้ไขได้โดยไม่กระทบเวอร์ชันหลัก มีประโยชน์สำหรับทดสอบฟีเจอร์ใหม่หรือแก้บั๊กโดยไม่รบกวนโปรเจ็กต์หลัก มี repo ในเครื่องที่เก็บบนฮาร์ดไดรฟ์ และ remote repo ที่เก็บออนไลน์ผ่าน Git และ GitLab
การใช้ Git
คุณต้องติดตั้ง Git บนระบบของคุณ บนระบบที่ใช้ Debian คุณสามารถใช้คำสั่ง apt เพื่อติดตั้งแพ็กเกจซอฟต์แวร์ ในกรณีนี้ เราใช้ apt เพื่อติดตั้ง Git ซึ่งเป็นแพ็กเกจที่ให้ระบบควบคุมเวอร์ชัน Git คำสั่ง sudo ให้สิทธิ์ตัวติดตั้งในการติดตั้งบนระบบของคุณ
sudo apt install gitเข้าถึง GitLab
ก่อนใช้ GitLab คุณต้องสร้างบัญชีโดยไปที่เว็บไซต์ GitLab และทำตามขั้นตอนการลงทะเบียนให้เสร็จ
GitLab ต้องใช้ SSH สำหรับการสื่อสารที่ปลอดภัยและยืนยันตัวตนระหว่างไคลเอนต์ (เช่น คุณ) กับเซิร์ฟเวอร์ GitLab เมื่อทำงาน Git เช่น clone, push และ fetch ของ repo clone คือการสร้างสำเนา repo ในเครื่อง fetch คือการดึงการเปลี่ยนแปลงจาก repo มายังสำเนาในเครื่อง และ push คือการส่งการเปลี่ยนแปลงและเนื้อหาไปยัง repo บนเซิร์ฟเวอร์ SSH (Secure Shell) เป็นโปรโตคอลเครือข่ายที่ให้การเข้าถึงระยะไกลอย่างปลอดภัย และใช้ key pairs ในการยืนยันตัวตนและสร้างการเชื่อมต่อที่ปลอดภัย หากต้องการสร้างคู่คีย์ SSH ให้ใช้คำสั่ง ssh-keygen ในเทอร์มินัล
ssh-keygenระบุชื่อไฟล์ หรือกด Enter เพื่อใช้ค่าเริ่มต้น และอาจใส่รหัสผ่านก็ได้ ในโฮมไดเรกทอรี ในโฟลเดอร์ที่ซ่อนอยู่ชื่อ .ssh จะมีไฟล์ id_rsa สองไฟล์ หากคุณใช้ชื่อเริ่มต้น ไฟล์ .pub คือคีย์สาธารณะ คุณสามารถดูเนื้อหาได้ด้วยโปรแกรมแก้ไขข้อความ
ลงชื่อเข้าใช้บัญชี GitLab และไปที่การตั้งค่าผู้ใช้ คลิก ‘SSH Keys’ ในเมนูนำทางด้านซ้าย คัดลอกและวางคีย์สาธารณะของคุณในช่อง Key และตั้งชื่อคีย์ที่เหมาะสม เช่น PC@Home คลิก ‘Add Key’ เพื่อบันทึกคีย์ คีย์สาธารณะ SSH ของคุณถูกเพิ่มในบัญชี GitLab แล้ว และคุณสามารถใช้ยืนยันตัวตนกับ repo ของ GitLab ได้ ทดสอบว่าคีย์และการเชื่อมต่อทำงานด้วยคำสั่ง ssh -T คุณควรเห็นข้อความต้อนรับจาก GitLab
$ ssh -T git@ssh.gitlab.gnome.org
Welcome to GitLab, @username!คำสั่ง Git พื้นฐาน
ตอนนี้คุณติดตั้ง Git และตั้งค่าคีย์ SSH กับ GitLab แล้ว มาดูคำสั่ง Git ที่จำเป็นสำหรับการจัดการ repo กัน คำสั่งเหล่านี้จะช่วยให้คุณทำงานกับโปรเจ็กต์ที่มีอยู่ อัปเดตให้ทัน และแก้ไขได้อย่างปลอดภัย
1. การ clone repository
การ clone คือกระบวนการสร้างสำเนาในเครื่องของ remote repository มีประโยชน์เมื่อคุณต้องการทำงานกับโปรเจ็กต์ที่มีอยู่แล้วบน GitLab หากต้องการ clone repository ให้ใช้คำสั่ง git clone ตามด้วย URL ของ repository:
git clone https://gitlab.com/username/repository.gitแทนที่ https://gitlab.com/username/repository.git ด้วย URL ของ repository ที่คุณต้องการ clone คำสั่งนี้จะสร้างสำเนา repository ในเครื่องในไดเรกทอรีใหม่
2. ตรวจสอบสถานะ repository
หากต้องการดูว่า repo ในเครื่องมีการเปลี่ยนแปลงหรือไม่ หรือดูสถานะปัจจุบัน ให้ใช้:
git statusคำสั่งนี้จะแสดงไฟล์ที่ถูกแก้ไข เพิ่ม หรือลบในสำเนา repo ในเครื่องของคุณ
3. Remote repositories
Remote repositories คือเวอร์ชันของโปรเจ็กต์ที่โฮสต์ออนไลน์ เช่น บน GitLab ทำหน้าที่เป็นที่เก็บโค้ดกลางที่ผู้อื่นเข้าถึงได้ remote repository เริ่มต้นที่ Git สร้างเมื่อคุณ clone โปรเจ็กต์เรียกว่า origin คุณสามารถเพิ่ม ลบ หรือแสดงรายการ remote repositories ด้วยคำสั่งต่อไปนี้:
แสดงรายการ remote repositories:
หากต้องการดูว่า remote repositories ใดเชื่อมโยงกับโปรเจ็กต์ในเครื่อง ให้ใช้:
git remote -vคำสั่งนี้แสดงรายการ remote repositories ทั้งหมดและ URL ของแต่ละรายการ โดยปกติคุณจะเห็น
originอยู่ที่นี่เพิ่ม remote repository:
หากต้องการเพิ่ม remote repository ใหม่ ให้ใช้:
git remote add <name> <url>แทนที่
<name>ด้วยชื่อของ remote repository และ<url>ด้วย URL ของ repositoryลบ remote repository:
หากต้องการลบ remote repository ให้ใช้:
git remote remove <name>แทนที่
<name>ด้วยชื่อ remote repository ที่ต้องการลบ
4. ดึงการเปลี่ยนแปลงจาก remote repository
หากต้องการดูการเปลี่ยนแปลงใน remote repository โดยไม่นำไปใช้กับสำเนาในเครื่อง ให้ใช้:
git fetch originคำสั่งนี้จะ fetch การเปลี่ยนแปลงล่าสุดจาก remote repository แต่จะไม่ merge เข้ากับ branch ในเครื่อง เป็นวิธีตรวจสอบการอัปเดตก่อนตัดสินใจนำมาใช้
5. รีเซ็ต repo ในเครื่อง
หากต้องการรีเซ็ต repo ในเครื่องให้ตรงกับ remote repository ทุกประการ คุณสามารถใช้การ reset แบบ ‘hard’ ได้ คำเตือน: การทำเช่นนี้จะเขียนทับการเปลี่ยนแปลงในเครื่องทั้งหมดที่คุณทำไว้
git reset --hard origin/branch-nameแทนที่ branch-name ด้วยชื่อ branch ที่ต้องการรีเซ็ต คำสั่งนี้จะยกเลิกการเปลี่ยนแปลงในเครื่องทั้งหมดและทำให้ repo ในเครื่องเหมือนกับ remote repository
6. ดูประวัติ commit
หากต้องการดูรายการการเปลี่ยนแปลงที่เกิดขึ้นใน repository ตามช่วงเวลา ให้ใช้:
git logคำสั่งนี้แสดงประวัติ commit รวมถึงผู้เขียน วันที่ และข้อความของแต่ละการเปลี่ยนแปลง มีประโยชน์ในการเข้าใจว่ามีการเปลี่ยนแปลงอะไรบ้างและเมื่อใด
สรุป
คำสั่ง Git พื้นฐานเหล่านี้จะช่วยให้คุณทำงานกับ repo ได้ อัปเดตสำเนาในเครื่องให้ทัน และจัดการ remote repositories อย่างปลอดภัย การ clone repository ตรวจสอบสถานะสำเนาในเครื่อง และจัดการ remote repositories เป็นทักษะสำคัญในการจัดการโปรเจ็กต์ด้วย Git