basic-git
ปกติในการใช้ git ของผมจะใช้งานผ่าน command line เสมอ
เนื่องจากใช้งานผ่าน GUI ไม่เป็น !!
โดยคำสั่งที่ใช้บ่อย ๆ ประกอบไปด้วย

  • push
  • pull
  • status
  • add
  • commit
  • diff
  • log

ซึ่งน่าจะเพียงพอ !!
แต่ขอแนะนำพื้นฐานการใช้งาน git ที่น่าจะต้องรู้
หรือถ้าไม่รู้ก็ควรจะศึกษาเพิ่มเติม
เนื่องจากจะช่วยทำให้ใช้งาน git ได้ดีและมีประสิทธิภาพมากยิ่งขึ้น

พื้นฐานมันเป็นเรื่องที่สำคัญมาก ๆ นะ

เริ่มด้วยอย่างแรกคือไฟล์ .gitignore

น่าจะเป็นไฟล์แรกของการสร้าง project หรือ repository ของ git เลยก็ว่าด้วย
เพื่อกรองไฟล์ที่เราไม่ต้องการออกไป
เช่น

  • ไฟล์ที่ถูกสร้างมาจาก IDE เช่น configuration ต่าง ๆ ซึ่งเป็นของเฉพาะเครื่อง ถ้าเอาขึ้นก็บรรลัยแน่นอน (คนในทีมยกเว้นตัวเอง)
  • ไฟล์ที่ OS สร้างขึ้นมาให้เอง เช่น .DS_Store บน MacOS เป็นต้น

โดยที่ไฟล์ .gitignore ของภาษาต่าง ๆ ลองไปดู template ได้จาก Github::Gitignore

แต่ถ้าต้องการสร้างไฟล์ .gitignore ใน project ของเรา
แนะนำให้ใช้งานร่วมกับไฟล์ .gitignore_global
ซึ่งอยู่ใน <Home directory> ของเรานั่นเอง
จากนั้นทำการเพิ่มเข้ามาในไฟล์ .gitconfig
หรือไฟล์ configuration ของ git ก็ได้นะ
โดยใช้คำสั่งดังนี้

$git config --global core.excludesfile <Home directory>/.gitignore_global

หรือเพิ่มในไฟล์ .gitconfig ได้เองดังนี้

[core]
  excludesfile = <Home directory>/.gitignore_global

บ่อยครั้งจะใช้งานไฟล์ .gitignore_global ร่วมกับ .gitignore ของแต่ละ repository

ถ้าเราต้องการตรวจสอบว่าไฟล์ต่าง ๆ ถูก ignore ออกไปหรือไม่ ?

ลองใช้งานผ่านคำสั่ง $git ls-files
ซึ่งจะแสดงไฟล์ทั้งหมดที่ไม่ถูก ignore นะครับ
มักใช้ร่วมกับ grep และ sed

ตัวอย่างเช่นต้องการหาไฟล์นามสกุล .js หรือ JavaScript เท่านั้น
จะใช้คำสั่งดังนี้

$git ls-files | grep -E \.js$

ต่อมาคือไฟล์ .gitconfig

เท่าที่พบเจอคนใช้งาน git มา
มักพบว่าจะไม่รู้ไฟล์ .gitconfig
ถ้าใช้งานก็ผ่านคำสั่ง $git config –global กันหมด
โดยไฟล์นี้จะอยู่ที่ <Home directory>/.gitconfig
เราสามารถทำการ config ค่าต่าง ๆ ให้เหมาะสมต่อการใช้งานได้ เช่น

  • User information ทั้งชื่อและ email
  • สีสันต่าง ๆ เช่นการ diff, status, grep และ alias เป็นต้น
  • พวก merge tool และ diff tool

ตัวอย่างการกำหนดสีแต่ละสถานะของไฟล์ เมื่อใช้งานผ่าน git status
สามารถแบ่งสีตามสถานะดังนี้

  • แสดงสีเขียวเมื่อทำการเพิ่มไฟล์เข้าไปยัง repository ผ่านคำสั่ง git add
  • แสดงสีเหลืองเมื่อทำการแก้ไขไฟล์
  • แสดงสีแดงเมื่อทำการสร้างไฟล์ใหม่เข้ามา
[color "status"]  
  added = green bold  
  changed = yellow bold  
  untracked = red bold

แสดงผลการใช้งานดังนี้

basic-git-02

ต่อมาคือ git alias

สำหรับการย่อคำสั่งยาว ๆ ให้สั้นลง
ตัวอย่างที่ใช้บ่อย ๆ ก็เช่น git grep และ git log

[alias]
  mygrep = grep --extended-regexp --break --heading --line-number

สามารถเรียกใช้งานแทนด้วย

$git mygrep "your pattern"

หรือว่าการใช้งาน git log เพื่อค้นหาสิ่งที่ต้องการ

ซึ่งแต่ละคำสั่งมันยาวมาก ๆ
ทั้งการ grep
ทั้งการใช้งาน git log ซึ่งมี option ต่าง ๆ เยอะมาก
เช่นช่วงของวันที่ที่ต้องการ
สามารถใช้ alias มาช่วยได้ดังนี้

[alias]
  search = log --no-merges -i -E --pretty='%h (%ad) - [%an] %s %d' --date=format:'%b %d %Y' --grep

ใช้งานแบบง่ายด้วยคำสั่ง

$git search "your pattern"

เป็นอย่างไรบ้างสำหรับการใช้งาน git
น่าจะพอมีประโยชน์บ้างเล็กน้อยนะครับ

Tags: