เมื่อก่อนผมเป็นคนหนึ่งที่เกิดข้อสงสัยในใจว่า git คืออะไร และมาช่วยให้งานมันง่ายขึ้นได้อย่างไร เพราะเท่าที่ดูแล้วมันจะต้องเรียนรู้เพิ่มและทำงานเพิ่มมากกว่าเดิม แต่หลังจากที่ผมใช้งาน git จนเข้าใจ ผมพูดได้คำเดียวว่า วันนี้ผมขาด git ไม่ได้สำหรับคนทีไม่เคยใช้โปรแกรมใดๆเข้ามาช่วยจัดการงานทางด้านควบคุม sourcecode เวลาจะแบ็กอัพงานทีนึ่ง ก็จะก้อปปี้งานทั้งโฟลเดอร์แล้วอาศัยตั้งชื่อเป็น วัน-เดือน-ปี เอา ของบางคนอาจจะเติมเวลาเข้าไปด้วย การทำอย่างนี้เหมือนจะเป็นประโยชน์ แต่โค้ดที่แบ็กอัพไว้หากจะให้เอากลับมาใช้งานจริงๆ ถามว่าจะมีสักกี่คนกล้าเอามันโยนขึ้นโปรดักชั่นได้โดยไม่ต้องกังวล ส่วนใหญ่แล้วไม่กล้า สำหรับคนที่ใช้ git มันจะไม่มีปัญหาดังกล่าวข้างต้นเลย ผมอยากให้ดูภาพการใช้งานจริงของ git เพื่อเป็นการทำความเข้าใจว่าแท้จริงแล้ว git มันช่วยอะไรเราบ้าง

1. เก็บการเปลี่ยนแปลงของโค้ดทุกบรรทัด

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

2. สามารถทดสอบเขียนโค้ด โดยไม่ต้องกลัวโค้ดจะพังด้วยกระบวนการการแตก branch

3. รู้การเปลี่ยนแปลงของโค้ดทุกๆบรรทัด ทำให้ลดปัญหา “เราทำอะไรไปบ้างวะ” อีกทั้งสามารถยกเลิกการเปลี่ยนแปลงโค้ดได้อย่างง่ายดายเพียงแค่คลิกปุ่ม Discard ทุกอย่างก็กลับมาเหมือนเดิม

อีกหลายอย่าง เขียนอธิบายไว้ในหนังสือเล่มนี้แล้ว

สารบัญ

  • บทที่ 1 Overview
  • บทที่ 2 ติดตั้ง Git
    • ติดตั้ง Git SCM
    • ติดตั้ง Source Tree
    • เปิดใช้งาน source tree ครั้งแรก
    • Configuration
  • บทที่ 3 Working with Git Locally
    • สร้าง repository
    • ทดลองเล่น Git ครั้งแรก
    • Commit
    • Undo
    • Undo All
    • Show history
    • Ignore some file
  • บทที่ 4 Going remote
    • สมัคร bitbucket.org
    • สร้าง Repository บน bitbucket.org
    • Clonning ดึงโปรเจ็กมาลงเครื่องพัฒนา
    • Pushing เอาไฟล์ขึ้นไปเก็บที่ bitbucket
    • Pull ดึงไฟล์จาก bitbucket
  • บทที่ 5 Branch
    • การแตก branch
    • การสลับ branch
    • การลบ branch
    • การลบ branch วิธีที่ 2
    • การ merge branch
    • tag ความหมายและการใช้งาน
    • Stash วิธีการพักโค้ด
    • Apply โค้ดจาก Stash
    • การ Checkout โค้ด
  • บทที่ 6 คำสั่งอรรถประโยชน์
    • Amend Commit
    • export
      • export แบบ เจาะจง commit
      • คำสั่ง
      • คำอธิบาย
      • export แบบช่วงจาก commit นี้ไปถึง commit นี้
      • คำสั่ง
      • คำอธิบาย
  • บทที่ 7 bitbucket
    • สำรวจ bitbucket ว่ามีอะไรบ้าง
    • สร้างทีมสำหรับ dev
    • Issue tracking
      • เปิดใช้งาน Issue
      • สร้าง Issue
      • เปลี่ยนสถานะ Issue
      • การแก้ไข Issue
      • การแนบภาพประกอบ Issue
      • การลบ Issue
    • Hook
      • ให้ส่งอีเมล์อัตโนมัติเมื่อมีใคร push code เข้า repository
      • ให้ส่ง twitter อัตโนมัติเมื่อมีใคร push code เข้า repository
    • Wiki
      • เปิดใช้งาน Wiki