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 ที่เตรียมไว้
ขั้นตอน:
- สร้าง
.git/hooks/pre-commit - วางโค้ดนี้
- เรียกใช้
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.txtgit 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 ของคุณ สคริปต์จะพิมพ์ข้อความยืนยัน
ขั้นตอน:
- สร้าง
.git/hooks/post-merge - วางโค้ดนี้
- เรียกใช้
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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ทำความเข้าใจ Git Hooks
- Hooks ก่อนคอมมิตและหลังผสาน
- การปรับแต่งการกำหนดค่า Git
- การแบ่งปันฮุกด้วย Husky