[GIT] บน SVN มีเลข Revision แต่ใน GIT จะใช้อะไรแทน ?

ปกติแล้วตอน Build Program นอกจาก Stamp เลขเวอร์ชันตาม Tag หรือ ตามที่ผู้ใช้งานป้อนเข้าไปแล้ว ทางผมยังได้ใส่เลขอีกตัวนึง เพื่อเราไว้ค้นหาความจริงด้วยครับ

SVN ตัวเดิมๆ

  • SVN ตัวเดิมๆใช้คำสั่งตามนี้ครับ
svn info --show-item last-changed-revision
  • ผลลัพธ์ที่ได้จะเป็นตัวเลขของ Commit ซึ่งเป็นจำนวนเต็ม ที่ถูกอ้างอิงมาใช้ในการ Build ครับ

GIT เพื่อนใหม่หละ ?

  • ก่อนอื่นเลข GIT ไม่มีเลข Revision นะครับ ต้องของทดแทนครับ
    • วิธีแรก: ไม่มีเลข Revision ก็นับจำนวน Commit เลยและกัน
    • วิธ๊สอง: ใช้เลขของ Commit ของ Git ครับ แต่จะอ่านยากนิดนึงครับ
  • ทั้งสองวิธีมีข้อดี/ข้อเสียต่างกันครับ เดวลองมาดูในแต่ละห้วข้อย่อยๆกันครับ

- นับจำนวน Commit เลย

  • การนับจำนวน Commit ใน Git สามารถนับได้ ดัวยคำสั่ง
git rev-list --count HEAD
  • ผลลัพธ์ที่ได้ครับ
  • ข้อดี / ข้อเสีย
    • ข้อดี - อ่านง่าย
    • ข้อเสีย - อ้างอิงกับ Code ใน Repo มันยากครับ

- เลขของ Commit ของ Git ครับ

  • การดูว่า Commit ล่าสุดมีเลขอะไร จริงๆมันก็ไม่ใช่ตัวเลขนะออกจะเป็นการเข้ารหัสมากกว่าครับ โดยใช้คำสั่ง
git rev-parse HEAD
  • ผลลัพธ์ที่ได้ครับ
  • ข้อดี / ข้อเสีย
    • ข้อดี - อ้างอิงกับ Code ใน Repo มันยากครับ
    • ข้อเสีย - ผลลัพธ์ที่ได้มันยาวมากกกกกกครับ ถ้าจะเอาไปแนบใน Attribute ของ File จะมีข้อจำกัดอยู่ครับ
  • แถมจากข้อเสียใช่ว่ามันจะใช้ไม่ได้นะ - ตัดมันออกมาให้เหลือสัก 10-15 หลักแรกก็พอครับ ตัว GIT / GIT Lab มันเอาไป Search หา Commit นั้นใน Repo ได้อยู่ครับ
    • Linux Shell : ดึง GIT Commit และตัดให้เหลือ 10 ตัว โดยใช้คำสั่ง ดังนี้ git rev-parse HEAD | cut -c 1-10
    • Power Shell : ดึง GIT Commit และตัดให้เหลือ 10 ตัว โดยใช้คำสั่ง ดังนี้
      git rev-parse HEAD | % {$_.Substring(0,10)}
  • มาดูผลลัพธ์ของ Linux Shell กับ Power Shell กันครับ

Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts to your email.