[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 sent to your email.