0Pricing
DevOps Bootcamp · บทเรียน

Hooks ก่อนคอมมิตและหลังผสาน

นำตัวอย่างการใช้งานจริงของ Hooks ก่อนคอมมิตสำหรับตรวจรูปแบบโค้ด และ Hooks หลังผสานสำหรับการแจ้งเตือนมาใช้

Hooks ก่อนคอมมิตและหลังผสาน เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

บทนำฮุก Git ภาคปฏิบัติ

ในบทเรียนก่อนหน้านี้ เราได้เรียนรู้เกี่ยวกับฮุก Git และประเภทต่าง ๆ ของฮุกแล้ว ตอนนี้มาลงมือปฏิบัติกัน

เราจะลงมือสร้างฮุกทรงพลังสองแบบ ได้แก่ pre-commit และ post-merge ซึ่งช่วยให้คุณทำการตรวจสอบก่อนคอมมิตและดำเนินการต่าง ๆ หลังการผสานได้โดยอัตโนมัติ

Pre-commit: ด่านตรวจคุณภาพของคุณ

ฮุก pre-commit จะทำงานก่อนการดำเนินการคอมมิต แต่หลังจากที่คุณใช้ git add เพื่อเตรียมการเปลี่ยนแปลงแล้ว

  • เหมาะอย่างยิ่งสำหรับบังคับใช้คุณภาพและรูปแบบของโค้ด
  • คุณสามารถใช้ฮุกนี้เรียกใช้เครื่องมือตรวจโค้ด เครื่องมือตรวจรูปแบบ หรือแม้แต่การทดสอบหน่วยพื้นฐาน
  • หากสคริปต์จบการทำงานด้วยสถานะที่ไม่ใช่ศูนย์ คอมมิตจะถูกยกเลิกโดยอัตโนมัติ

วิธีนี้ช่วยให้มั่นใจว่ามีเพียงโค้ดคุณภาพสูงที่เป็นไปตามข้อกำหนดเท่านั้นที่จะเข้าสู่คลังข้อมูลของคุณ

การตั้งค่าฮุก Pre-commit

หากต้องการสร้างฮุก pre-commit คุณต้องสร้างไฟล์ที่เรียกใช้งานได้ชื่อ pre-commit ภายในไดเรกทอรี .git/hooks/ ของโครงการ

Git มีฮุกตัวอย่างที่ใช้นามสกุล .sample ให้ คุณจะต้องลบนามสกุลดังกล่าวและเพิ่มสคริปต์ที่กำหนดเองของคุณ

อย่าลืมทำให้ไฟล์เรียกใช้งานได้ด้วยคำสั่ง: chmod +x .git/hooks/pre-commit

ตัวอย่าง: ป้องกันคอมมิตที่มี 'TODO'

มาสร้างฮุก pre-commit อย่างง่ายที่ป้องกันไม่ให้คุณคอมมิตไฟล์ซึ่งยังมีคำว่า "TODO" กัน วิธีนี้เป็นแนวทางทั่วไปเพื่อให้แน่ใจว่างานที่ยังไม่เสร็จจะไม่หลุดเข้าไปในฐานโค้ด

สคริปต์จะตรวจสอบคำสำคัญนี้ในไฟล์ทั้งหมดที่เตรียมไว้ หากพบ สคริปต์จะหยุดการคอมมิต

ฮุก Pre-commit: ไม่มี TODO แล้ว

นี่คือตัวอย่างสคริปต์เชลล์อย่างง่ายสำหรับไฟล์ .git/hooks/pre-commit ของคุณ สคริปต์จะตรวจสอบคำว่า "TODO" ในไฟล์ .txt ที่เตรียมไว้

ขั้นตอน:

  1. สร้าง .git/hooks/pre-commit
  2. วางโค้ดนี้
  3. เรียกใช้ chmod +x .git/hooks/pre-commit
#!/bin/sh

# Check staged .txt files for "TODO"
for file in $(git diff --cached --name-only --diff-filter=ACM | grep '\.txt$'); do
  if grep -q "TODO" "$file"; then
    echo "ERROR: Found 'TODO' in staged file: $file"
    echo "Please remove TODOs before committing."
    exit 1
  fi
done

exit 0

การทดสอบฮุก Pre-commit

หากต้องการทดสอบฮุกนี้ ให้สร้างไฟล์ก่อน (เช่น test.txt) แล้วเพิ่มข้อความ "TODO: Finish this" ลงไป จากนั้นลองคอมมิตไฟล์:

git add test.txt
git commit -m "Add test file"

คอมมิตควรถูกยกเลิก และคุณจะเห็นข้อความข้อผิดพลาดจากฮุกของคุณ ลบ "TODO" ออกจาก test.txt แล้วคอมมิตจะสำเร็จ

Post-merge: ทำงานอัตโนมัติหลังการผสาน

ฮุก post-merge จะทำงานโดยอัตโนมัติหลังจากคำสั่ง git merge ดำเนินการสำเร็จ

  • มีประโยชน์สำหรับงานเชื่อมต่อระบบที่ควรเกิดขึ้นหลังจากรวมโค้ดแล้ว
  • ตัวอย่างเช่น การแจ้งสมาชิกทีม การอัปเดตสิ่งที่โครงการต้องพึ่งพา (เช่น npm install) หรือการเรียกใช้สคริปต์สร้างโปรแกรม
  • ต่างจาก pre-commit ฮุกนี้ไม่ส่งผลต่อผลลัพธ์ของการผสาน

นี่เป็นวิธีที่ยอดเยี่ยมในการทำให้กระบวนการหลังการผสานเป็นอัตโนมัติ

การตั้งค่าฮุก Post-merge

เช่นเดียวกับ pre-commit คุณสร้างไฟล์ชื่อ post-merge ภายในไดเรกทอรี .git/hooks/ ของคุณ

เช่นเดิม ตรวจสอบให้แน่ใจว่าไฟล์เรียกใช้งานได้:

chmod +x .git/hooks/post-merge

จากนั้นสคริปต์นี้จะทำงานทุกครั้งที่การผสานในคลังข้อมูลของคุณเสร็จสมบูรณ์

ตัวอย่าง: การแจ้งเตือนเมื่อผสานเสร็จ

มาสร้างฮุก post-merge ที่เพียงพิมพ์ข้อความไปยังคอนโซลเพื่อยืนยันว่าการผสานเพิ่งเกิดขึ้น ในสถานการณ์จริง ฮุกนี้อาจทริกเกอร์กระบวนการ CI/CD หรือส่งการแจ้งเตือนไปยังแอปพลิเคชันแชต

ฮุก Post-merge: การแจ้งเตือน

นี่คือตัวอย่างสคริปต์เชลล์อย่างง่ายสำหรับไฟล์ .git/hooks/post-merge ของคุณ สคริปต์จะพิมพ์ข้อความยืนยัน

ขั้นตอน:

  1. สร้าง .git/hooks/post-merge
  2. วางโค้ดนี้
  3. เรียกใช้ chmod +x .git/hooks/post-merge
#!/bin/sh

# This hook runs after a merge operation.
echo "--- Post-merge hook triggered ---"
echo "A merge has just completed in your repository."
echo "You might want to run 'npm install' or 'bundle install' now."
echo "---------------------------------"

exit 0

ตรวจสอบฮุก: Pre-commit เทียบกับ Post-merge

โดยทั่วไป งานใดต่อไปนี้จะได้รับการจัดการโดยฮุก pre-commit

ทบทวน: ฮุกในการใช้งานจริง

ทำได้ดีมาก ในบทเรียนนี้ คุณได้เรียนรู้การสร้างฮุก Git สำหรับใช้งานจริง

  • ฮุก Pre-commit ทำหน้าที่เป็นด่านตรวจคุณภาพ โดยเรียกใช้การตรวจสอบ เช่น การตรวจรูปแบบหรือการทดสอบ ก่อนคอมมิต
  • ฮุก Post-merge ทำให้การดำเนินการต่าง ๆ หลังการผสานเป็นอัตโนมัติ เช่น การแจ้งเตือนหรือการอัปเดตสิ่งที่โครงการต้องพึ่งพา

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

คำถามที่พบบ่อย

บทเรียน “Hooks ก่อนคอมมิตและหลังผสาน” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “Hooks ก่อนคอมมิตและหลังผสาน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “Hooks ก่อนคอมมิตและหลังผสาน”

นำตัวอย่างการใช้งานจริงของ Hooks ก่อนคอมมิตสำหรับตรวจรูปแบบโค้ด และ Hooks หลังผสานสำหรับการแจ้งเตือนมาใช้ คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “Hooks ก่อนคอมมิตและหลังผสาน” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม

ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ทำความเข้าใจ Git Hooks
  2. Hooks ก่อนคอมมิตและหลังผสาน
  3. การปรับแต่งการกำหนดค่า Git
  4. การแบ่งปันฮุกด้วย Husky
← กลับไปที่ DevOps Bootcamp