Git : Memahami Git Commit Hooks Beserta Contoh Penerapan

ervinismu
4 min readMay 3, 2022

--

Photo by Yancy Min on Unsplash

Apa itu git hooks ?

Git Hooks digunakan untuk menjalankan custom script ketika kita melakukkan action ke git (seperti : commit, push, dan lainnya).

Fitur ini adalah bawaan dari git, kita tidak perlu untuk melakukkan instalasi terlabih dahulu untuk menggunakannya, asik bukan ? 😄

Konfigurasi git hooks terletak didalam folder .git/hooks pada git repository.

📝 : ketika kita menjalankan perintah git init untuk pertama kalinya, secara default git akan menyuguhkan beberapa script sample pada directory .git/hooks seperti pada gambar dibawah ini.

ls .git/hooks

Trigger

Git commit hooks bisa kita trigger dengan beberapa cara, contohnya sebagai berikut ini :

  • commit-msg : mengeksekusi script setiap kali kita melakukkan commit.
  • pre-push : mengeksekusi script setiap kali kita melakukkan push.

Untuk membaca lebih lengkapnya terkait trigger commit hooks bisa membaca disini atau bisa juga dengan melihat template commit hooks disini!

Contoh Penerapan

Contoh 1 : commit-msg hooks

Disini kita akan mencoba untuk menerapkan hooks untuk commit-msg, script ini akan dijalankan ketika melakukkan action git commit.

#1. Define file : membuat file commit-msg didalam folder .git/hooks

touch .git/hooks/commit-msg

#2. Set file sebagai executable file : Agar file ini bisa di eksekusi oleh git, kita perlu merubah permission file ini menjadi executable file.

chmod +x .git/hooks/commit-msg

3. Menulis Script : Di contoh script ini kita akan menampilkan custom message setiap kali kita melakukkan commit.

#!/bin/bash

author=$(git log -1 --pretty=format:'%an')
repo=$(basename `git rev-parse --show-toplevel`)
echo "si ${author} lagi nambahin commit ke ${repo} lho gaes :))"

#4. Testing : Setelah kita melakukkan commit, akan menampilkan custom message seperti dibawah ini :

si ervinismu lagi nambahin commit ke learn-git-hooks lho gaes :))

Contoh 2 : pre-push hooks

Contoh kedua ini kita akan mencoba untuk menjalankan unit testing dengan trigger pre-push hooks, pre-push hooks akan dijalankan setiap kali kita melakukkan push ke remote repository, dalam case ini kita akan me-run unit testing setiap kali push ke remote repository.

#1. Define file : membuat file pre-push didalam folder .git/hooks

touch .git/hooks/pre-push

#2. Set file sebagai executable file : Agar file ini bisa di eksekusi oleh git, kita perlu merubah permission file ini menjadi executable file.

chmod +x .git/hooks/pre-push

3. Menulis Script : Di contoh kedua ini kita akan menjalankan rspec, karena kode yang kita jalankan adalah kode ruby

#!/bin/bashexec rspec spec

#4. Testing : saat kita melakukkan git push remote branch, akan menjalankan unit testing dan menampilkan hasil testingnya. Seperti gambar dibawah ini :

Kesimpulan

Banyak sekali action yang bisa kita jalankan dengan menerapkan git hooks agar membantu proses development kita menjadi lebih mudah, beberapa referensi git hooks saya lampirkan pada section Referensi.

Oooh yaa.. untuk sample kode ini saya upload disini jika ingin menjalankan example scriptnya 😄

Semoga bermanfaat, happy hacking! 🍉 🌠

--

--

ervinismu
ervinismu

Written by ervinismu

full time writer, part time software engineer, long life learner https://ruby.social/@ervinismu

No responses yet