![basic-git]()
![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 ก็ได้นะ
โดยใช้คำสั่งดังนี้
[code]
$git config --global core.excludesfile <Home directory>/.gitignore_global
[/code]
หรือเพิ่มในไฟล์ .gitconfig ได้เองดังนี้
[code]
[core]
excludesfile = <Home directory>/.gitignore_global
[/code]
บ่อยครั้งจะใช้งานไฟล์ .gitignore_global ร่วมกับ .gitignore ของแต่ละ repository
ถ้าเราต้องการตรวจสอบว่าไฟล์ต่าง ๆ ถูก ignore ออกไปหรือไม่ ?
ลองใช้งานผ่านคำสั่ง $git ls-files
ซึ่งจะแสดงไฟล์ทั้งหมดที่ไม่ถูก ignore นะครับ
มักใช้ร่วมกับ grep และ sed
ตัวอย่างเช่นต้องการหาไฟล์นามสกุล .js หรือ JavaScript เท่านั้น
จะใช้คำสั่งดังนี้
[code]
$git ls-files | grep -E \.js$
[/code]
ต่อมาคือไฟล์ .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
- แสดงสีเหลืองเมื่อทำการแก้ไขไฟล์
- แสดงสีแดงเมื่อทำการสร้างไฟล์ใหม่เข้ามา
[code]
[color "status"]
added = green bold
changed = yellow bold
untracked = red bold
[/code]
แสดงผลการใช้งานดังนี้
ต่อมาคือ git alias
สำหรับการย่อคำสั่งยาว ๆ ให้สั้นลง
ตัวอย่างที่ใช้บ่อย ๆ ก็เช่น git grep และ git log
[code]
[alias]
mygrep = grep --extended-regexp --break --heading --line-number
[/code]
สามารถเรียกใช้งานแทนด้วย
[code]
$git mygrep "your pattern"
[/code]
หรือว่าการใช้งาน git log เพื่อค้นหาสิ่งที่ต้องการ
ซึ่งแต่ละคำสั่งมันยาวมาก ๆ
ทั้งการ grep
ทั้งการใช้งาน git log ซึ่งมี option ต่าง ๆ เยอะมาก
เช่นช่วงของวันที่ที่ต้องการ
สามารถใช้ alias มาช่วยได้ดังนี้
[code]
[alias]
search = log --no-merges -i -E --pretty='%h (%ad) - [%an] %s %d' --date=format:'%b %d %Y' —grep
[/code]
ใช้งานแบบง่ายด้วยคำสั่ง
[code]
$git search "your pattern"
[/code]
เป็นอย่างไรบ้างสำหรับการใช้งาน git
น่าจะพอมีประโยชน์บ้างเล็กน้อยนะครับ