Memahami Git Hooks
Jelajahi berbagai jenis Git hooks dan titik eksekusinya dalam alur kerja Git.
Memahami Git Hooks adalah pelajaran DevOps Bootcamp gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar DevOps Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus DevOps Bootcamp mencakup 4 pelajaran total.
Apa Itu Git Hooks?
Selamat datang di Git Hooks! Git hooks adalah skrip yang kuat dan dapat disesuaikan, yang dijalankan Git secara otomatis sebelum atau sesudah peristiwa seperti membuat commit, mendorong perubahan, atau menerima commit yang didorong.
Anggap saja hook sebagai pemeriksaan atau tindakan otomatis dalam alur kerja Git Anda. Hook membantu menegakkan standar proyek, mengotomatiskan tugas, dan berintegrasi dengan sistem lain.
Lokasi Hook
Setiap repositori Git dilengkapi direktori .git/hooks. Di dalamnya, Anda akan menemukan contoh skrip hook (biasanya diakhiri dengan .sample).
Untuk mengaktifkan hook, cukup hapus ekstensi .sample dan jadikan berkas tersebut dapat dieksekusi. Git kemudian akan menjalankannya pada waktu yang sesuai.
- Lokasi:
.git/hooks/ - Berkas: Skrip Shell (Bash, Python, Ruby, dan lainnya)
- Aktivasi: Ganti nama & jadikan dapat dieksekusi
Sisi Klien vs. Sisi Server
Git hooks dikategorikan menjadi dua jenis utama berdasarkan tempat hook dijalankan:
- Hook Sisi Klien: Dijalankan di mesin lokal Anda (misalnya, sebelum Anda membuat commit atau melakukan rebase). Hook ini digunakan untuk mengotomatiskan alur kerja pribadi dan menegakkan kebijakan lokal.
- Hook Sisi Server: Dijalankan di server Git remote (misalnya, saat Anda mendorong kode ke repositori bersama). Hook ini menegakkan kebijakan yang berlaku di seluruh proyek.
Hook Klien: pre-commit
Hook pre-commit adalah salah satu hook sisi klien yang paling umum. Hook ini dijalankan *sebelum* Git secara resmi membuat commit.
Jika skrip pre-commit berhenti dengan status bukan nol, Git membatalkan commit. Hook ini cocok untuk tugas seperti:
- Linting kode (memeriksa kesalahan gaya)
- Menjalankan pengujian unit
- Memeriksa berkas berukuran besar atau data sensitif
Hook Klien: commit-msg
Hook commit-msg dijalankan *setelah* Anda memasukkan pesan commit, tetapi *sebelum* commit ditetapkan.
Hook ini berguna untuk memastikan pesan commit mengikuti konvensi atau format tertentu. Misalnya, hook ini dapat memeriksa apakah:
- Pesan diawali dengan ID tiket (misalnya,
[JIRA-123]) - Panjang pesan berada dalam batas yang ditentukan
- Kata kunci tertentu ada atau tidak ada
Hook Klien: post-commit
Hook post-commit dijalankan *segera setelah* commit berhasil dibuat.
Berbeda dari pre-commit atau commit-msg, hook ini tidak dapat mengubah hasil commit. Hook ini sering digunakan untuk keperluan notifikasi atau integrasi, seperti:
- Memberi tahu anggota tim
- Memperbarui alat manajemen proyek
- Memicu build integrasi berkelanjutan (CI) (meskipun hal ini lebih umum dilakukan dengan hook sisi server)
Kait Server: pre-receive
Beralih ke kait sisi server, pre-receive dijalankan *sebelum* referensi apa pun (seperti cabang atau tag) diperbarui di repositori jarak jauh.
Kait ini sangat berguna untuk menerapkan kebijakan repositori penting, seperti:
- Mencegah pengiriman langsung ke cabang
main - Memastikan semua komit ditandatangani
- Memvalidasi identitas pembuat komit
Jika kait ini keluar dengan nilai selain nol, seluruh pengiriman akan ditolak.
Kait Server: post-receive
Kait post-receive dijalankan *setelah* pengiriman berhasil memperbarui referensi di repositori jarak jauh.
Serupa dengan post-commit, kait ini tidak dapat menolak pengiriman. Kait ini biasanya digunakan untuk:
- Memicu alur CI/CD
- Memperbarui pelacak isu eksternal
- Mengirim pemberitahuan email kepada tim
- Menerapkan kode ke lingkungan penahapan
Membuat Kait Sederhana
Untuk membuat kait, Anda cukup membuat berkas dengan nama kait tersebut (misalnya, pre-commit) di direktori .git/hooks/. Mari kita buat kait yang sangat dasar:
#!/bin/sh
# This pre-commit hook will always succeed
echo "Running pre-commit hook..."
exit 0Membuat Kait Dapat Dieksekusi
Setelah membuat skrip kait, Anda harus membuatnya dapat dieksekusi. Jika tidak, Git tidak akan menjalankannya. Gunakan perintah chmod di terminal Anda:
chmod +x .git/hooks/pre-commit
Sekarang, setiap kali Anda mencoba melakukan komit, Git akan menjalankan skrip ini!
Pemeriksaan Cepat: Waktu Kait
Kait Git dijalankan pada titik-titik tertentu dalam alur kerja Anda. Memahami waktunya adalah kunci untuk menggunakannya secara efektif.
Rangkuman: Memahami Kait Git
Anda telah mengambil langkah pertama ke dunia kait Git yang sangat bermanfaat!
- Kait Git adalah skrip yang mengotomatiskan tindakan selama peristiwa Git.
- Kait berada di direktori
.git/hooks/dalam repositori Anda. - Kait terbagi menjadi sisi klien (mesin lokal) atau sisi server (repositori jarak jauh).
- Kait penting seperti
pre-commitdanpre-receivedapat menerapkan kebijakan dengan memblokir operasi. - Kait seperti
post-commitdanpost-receivedigunakan untuk pemberitahuan atau integrasi setelah tindakan.
Selanjutnya, kita akan membahas penerapan contoh praktis dari kait tertentu!
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Memahami Git Hooks” gratis?
Ya — teks lengkap “Memahami Git Hooks” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus DevOps Bootcamp, upgrade ke CoddyKit PRO. Kursus DevOps Bootcamp mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Memahami Git Hooks”?
Jelajahi berbagai jenis Git hooks dan titik eksekusinya dalam alur kerja Git. Kamu berlatih DevOps Bootcamp dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai DevOps Bootcamp?
Tidak diperlukan pengalaman sebelumnya. DevOps Bootcamp di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Memahami Git Hooks” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran DevOps Bootcamp ini?
Ya. Setiap pelajaran DevOps Bootcamp menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Memahami Git Hooks
- Hook Pra-commit & Pascamerge
- Menyesuaikan Konfigurasi Git
- Membagikan Hook dengan Husky