Git Hook Sisi Klien
Fahami dan laksanakan hook sisi klien seperti `pre-commit` dan `post-merge` untuk menguatkuasakan piawaian secara setempat.
Git Hook Sisi Klien ialah pelajaran Git Lanjutan: Monorepo, Submodul dan Aliran Kerja percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Git Lanjutan: Monorepo, Submodul dan Aliran Kerja, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Git Lanjutan: Monorepo, Submodul dan Aliran Kerja merangkumi sejumlah 4 pelajaran.
Pengenalan kepada Git Hooks
Selamat datang! Dalam pelajaran ini, Anda akan mempelajari Git hooks. Ini ialah skrip yang dijalankan oleh Git secara automatik sebelum atau selepas peristiwa seperti membuat komit, menggabungkan atau menghantar perubahan.
Anggaplah hooks ini sebagai pembantu automatik untuk aliran kerja Git Anda. Hooks membantu menguatkuasakan piawaian projek dan mengautomasikan tugas rutin.
Bahagian Klien berbanding Bahagian Pelayan
Git hooks terbahagi kepada dua jenis:
- Hooks bahagian klien: Dijalankan pada mesin setempat Anda. Hooks ini hanya mempengaruhi repositori peribadi Anda. Contohnya termasuk `pre-commit` dan `post-merge`.
- Hooks bahagian pelayan: Dijalankan pada pelayan Git. Hooks ini mempengaruhi semua penghantaran perubahan ke repositori. Kami akan membincangkannya dalam pelajaran akan datang.
Pelajaran ini memfokuskan hooks bahagian klien dan cara menggunakannya secara setempat.
Lokasi Hooks
Semua Git hooks disimpan dalam direktori .git/hooks di dalam repositori Anda. Apabila Anda memulakan repositori Git baharu, Git mengisi direktori ini dengan skrip hook contoh.
Mari kita lihat kandungan folder .git/hooks biasa:
ls -F .git/hooks/Mengaktifkan Hook
Secara lalai, skrip hook contoh berakhir dengan .sample, menjadikannya tidak aktif. Untuk mengaktifkan hook, Anda perlu:
- Membuang sambungan
.sampledaripada nama failnya. - Menjadikan skrip itu boleh dilaksanakan.
Mari kita aktifkan hook pre-commit dengan menamakannya semula dan menjadikannya boleh dilaksanakan:
cd .git/hooks
mv pre-commit.sample pre-commit
chmod +x pre-commit`pre-commit`: Pengawal Setempat Anda
Hook pre-commit ialah salah satu hook bahagian klien yang paling berguna. Hook ini dijalankan tepat sebelum Git meminta mesej komit dan sebelum komit sebenar dicipta.
Jika skrip berakhir dengan status bukan sifar, Git membatalkan komit tersebut. Oleh itu, hook ini sesuai untuk:
- Menjalankan penganalisis kod (contohnya, ESLint, Flake8)
- Menjalankan ujian unit
- Menyemak kesilapan lazim (contohnya, pernyataan nyahpepijat)
Contoh: `pre-commit` untuk Analisis Kod
Berikut ialah skrip pre-commit ringkas yang menyemak sama ada mana-mana fail yang dipentaskan mengandungi perkataan "TODO". Jika skrip menemui "TODO", komit akan disekat.
Anda boleh mengedit fail .git/hooks/pre-commit secara terus untuk menambah kandungan ini:
#!/bin/sh
# Check for 'TODO' in staged changes
if git diff --cached | grep -q "TODO"; then
echo "Error: 'TODO' found in staged changes. Please resolve before committing."
exit 1
fiMenguji Hook `pre-commit`
Sekarang, mari kita cuba membuat komit bagi fail yang mengandungi "TODO". Hook pre-commit sepatutnya menghalang komit tersebut.
Mula-mula, cipta fail yang mengandungi "TODO", kemudian cuba buat komit:
echo "This is a file with a TODO item." > my_feature.txt
git add my_feature.txt
git commit -m "Attempt to commit with TODO"`post-merge`: Selepas Penggabungan
Hook post-merge dijalankan serta-merta selepas git merge atau git pull yang berjaya (yang pada asasnya ialah pengambilan diikuti penggabungan atau rebase).
Hook ini berguna untuk mengautomasikan tugas yang perlu dilakukan selepas direktori kerja Anda dikemas kini melalui penggabungan, seperti:
- Memasang kebergantungan baharu
- Membina semula projek Anda
- Mengemas kini dokumentasi atau pautan simbolik
Contoh: `post-merge` untuk Kebergantungan
Bayangkan Anda sedang mengerjakan projek dengan Node.js. Selepas menggabungkan cawangan yang memperkenalkan kebergantungan baharu (mengemas kini package.json), Anda pasti mahu menjalankan npm install.
Berikut ialah skrip post-merge yang menyemak sama ada package.json telah diubah oleh penggabungan dan menjalankan npm install jika ya:
#!/bin/sh
# Run npm install if package.json changed
if git diff --name-only HEAD@{1} HEAD | grep -q "package.json"; then
echo "package.json changed, running npm install..."
# npm install # Uncomment in a real project
echo "(npm install simulated)"
fiCabaran Hook
Anda telah mempelajari tentang Git hooks bahagian klien! Pernyataan manakah yang berikut adalah TRUE tentang hooks tersebut?
Hooks Bahagian Klien: Imbas Kembali
Tahniah! Anda telah meneroka Git hooks bahagian klien. Berikut ialah perkara yang telah kita bincangkan:
- Apakah hooks ini: Skrip yang dijalankan secara automatik pada peristiwa Git tertentu.
- Lokasinya: Dalam direktori
.git/hooks. - Cara mengaktifkannya: Namakan semula daripada
.sampledan jadikan boleh dilaksanakan. - `pre-commit`: Dijalankan sebelum komit, berguna untuk pengesahan dan analisis kod.
- `post-merge`: Dijalankan selepas penggabungan, sesuai untuk mengemas kini kebergantungan atau membina semula projek.
Hooks bahagian klien ialah alat berkuasa untuk mengautomasikan aliran kerja peribadi dan pemeriksaan kualiti setempat!
Pelajari Git Lanjutan: Monorepo, Submodul dan Aliran Kerja dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 12
- Pelajaran
- 48
Soalan Lazim
Adakah pelajaran “Git Hook Sisi Klien” percuma?
Ya — teks penuh “Git Hook Sisi Klien” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Git Lanjutan: Monorepo, Submodul dan Aliran Kerja, tingkat taraf kepada CoddyKit PRO. Kursus Git Lanjutan: Monorepo, Submodul dan Aliran Kerja merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Git Hook Sisi Klien”?
Fahami dan laksanakan hook sisi klien seperti `pre-commit` dan `post-merge` untuk menguatkuasakan piawaian secara setempat. Anda berlatih Git Lanjutan: Monorepo, Submodul dan Aliran Kerja menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Git Lanjutan: Monorepo, Submodul dan Aliran Kerja?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Git Lanjutan: Monorepo, Submodul dan Aliran Kerja di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.
Berapa lamakah pelajaran “Git Hook Sisi Klien” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Git Lanjutan: Monorepo, Submodul dan Aliran Kerja ini?
Ya. Setiap pelajaran Git Lanjutan: Monorepo, Submodul dan Aliran Kerja menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Git Hook Sisi Klien
- Git Hook Sisi Pelayan
- Konfigurasi dan Alias Git
- Berkongsi Hook dengan Pasukan menggunakan Husky