Screen Shot 2558-07-10 at 3.21.22 PM

ในปัจจุบันเชื่อว่า developer ส่วนใหญ่น่าจะใช้ Git
เป็นเครื่องมือที่ช่วยให้เราจัดการ และ ทำงาน กับไฟล์ต่างๆในระบบงาน (Source control)
เป็นเครื่องมือที่ช่วย track และ monitor การเปลี่ยนแปลงของไฟล์ต่างๆ ได้ง่าย
โดยรวมแล้ว Git เป็นเครื่องมือที่ดีมากๆ
แต่ตัวเราเอง และ ทีม ควรจะมีวินัยในการใช้งาน Git ด้วยเช่นกัน
เพื่อให้เกิดผลลัพธ์ที่ดีกว่า …

ดังนั้นมาดูกันว่า วินัยที่ดีในการใช้งาน Git มีอะไรบ้าง ?

ที่มา :: Git Disciplined

1. Keep the Focus

คำที่เราน่าจะได้ยินบ่อยมากๆ คือ “Commit Early and Often”
นั่นคือให้ทำการ commit การเปลี่ยนแปลงบ่อยๆ และ เล็กๆ มันมีข้อดีคือ
มันเป็นตัวช่วยนำทางเรา ไม่ว่าจะไปในทางที่ถูก หรือ ผิด ซึ่งถ้ามันผิดเราก็สามารถย้อนกลับได้ง่าย
โดยแต่ละ commit นั้นปฏิบัติตามแนวคิด Single Responsibility Principle (SRP)
เพื่อทำให้รู้ว่าแต่ละ commit ทำอะไร
เพื่อทำให้รู้ว่าแต่ละ commit มีการเปลี่ยนแปลงอะไร

และแต่ละ commit ควรทำงานอย่างใดอย่างหนึ่งเท่านั้น
มันจะช่วยให้เราเข้าใจแต่ละการเปลี่ยนแปลงได้ง่าย และ รวดเร็ว

2. Settle On A Convention

สร้างรูปแบบมาตรฐาน หรือ template การการสื่อสารผ่าน Git ซะ
ฟังดูแล้วอาจจะงง !!

เอาใหม่
งั้นให้ทำการกำหนดรูปแบบมาตรฐานของ commit message ซะ
เพื่อทำให้เรา และ ทีม อ่านแล้วเข้าใจได้ง่าย
เมื่อกลับมาง่ายในภายหลังจะได้ไม่มาด่ากันลับหลังอีก !!

วิธีการก็มีหลากหลาย เช่น การใช้งานผ่าน command line
$git commit -m “some message”

เป็นวิธีการที่ดีนะ เพื่อให้ commit message มันสั้น กระชับ
ส่งผลให้การเปลี่ยนแปลงแต่ละ commit มันน้อย
แต่ข้อเสียคือ commit message มันอาจจะสั้นไปจนไม่สามารถอธิบายอะไรได้เลย !!
(สามารถแก้ไขได้ด้วยการกำหนดรูปแบบของ message ซะ)

อีกวิธีหนึ่งคือ การใช้ commit template ของ message ซะเลย
โดยเราสามารถสร้าง template file ไว้ดังนี้
เช่น

และทำการกำหนด template บนเครื่องเราได้ดังนี้
$git config –global commit.template /path/to/commit_message_template.txt

เป้าหมายของวิธีการนี้คือ การสื่อสาร
ทั้งกับตัวเราเอง
ทั้งกับทีมงาน
ทั้งกับคนอื่นๆ ที่เกี่ยวข้องกับงานนั้นๆ
เพื่อทำให้ commit message มันดี และ มีประโยชน์ต่อการใช้งาน
ไม่ใช่เป็นเพียง

  • Add files
  • Delete files
  • Update files

ซึ่งมันไร้ความหมายอย่างมาก !!

3. Always Stay Green

เป็นสิ่งที่สำคัญมากๆ นั่นก็คือ แต่ละ commit จะต้องผ่านการทดสอบเสมอนะ !!
ดังนั้นก่อนทำการ commit การเปลี่ยนแปลงใดๆ ก็ตาม
จะต้องทำการ run test ทั้งหมดให้ผ่านเสียก่อน
ซึ่งมันคือ แนวปฏิบัติที่นักพัฒนาทุกๆ คนต้องทำ ไร้ซึ่งข้อแม้ใดๆ ทั้งสิ้น

แต่ด้วยเหตุผลว่า เราคือ มนุษย์
ดังนั้น จึงเกิดความผิดพลาดกันได้
นั่นคือ ไม่ run test ก่อนการ commit นั่นเอง
แต่ถ้ามันเกิดขึ้นมา สามารถใช้การ rebase ช่วยได้นะ

สุดท้ายคือ Keep it clean and Keep it simple

นั่นก็คือ อะไรที่ไม่ใช้ก็ให้ลบทิ้งไป เช่น branch เยอะๆ จะมีไว้ทำซากอะไร
ลบไปเสียบ้าง !!
ยิ่ง branch น้อย ความกังวลของคุณก็จะน้อย !!

ดังนั้นขอเน้นย้ำว่า ทั้งตัวเราเอง และ ทีม ควรมีวินัยในการใช้งาน
มิเช่นนั้นเครื่องมือที่ดี มันก็จะกลายเป็นของห่วยๆ ไปในพริบตา


Reference Websites
Check In Early, Check In Often
Commit Often, Perfect Later, Publish Once: Git Best Practices
Git: Commit Early, Commit Often
A Note About Git Commit Messages

Tags: