Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 2069

พื้นฐานการใช้งาน Git ที่ต้องรู้

$
0
0

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] แสดงผลการใช้งานดังนี้ basic-git-02

ต่อมาคือ 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 น่าจะพอมีประโยชน์บ้างเล็กน้อยนะครับ

Viewing all articles
Browse latest Browse all 2069

Trending Articles