mata teras
untuk skrip cangkuk yang sesuai, dan jika dijumpai, melaksanakannya. Anda akan menemui satu set kecil skrip sampel di dalamnya (anda boleh mengaktifkannya dengan menamakan semula mereka untuk mengeluarkan awalan .git/hooks
dan menetapkan bit pelaksanaan mereka), dan anda boleh menemui senarai penuh cangkuk di halaman .sample
lelaki. Artikel ini mengesyorkan menggunakan beberapa cangkuk untuk memudahkan pembangunan dan meningkatkan kecekapan. githooks(5)
CODE CODE CHECK
Mengemukakan kod dengan ralat sintaks tidak dianjurkan. Jika pemeriksaan gaya kod boleh dilakukan secara automatik semasa proses komit, ia akan meningkatkan kualiti kod. Jika anda menjalankan pemeriksaan gaya kod secara manual sebelum setiap komit, mengautomasikannya menghalang sesekali melupakan. Kod shell berikut boleh disimpan sebagai (jika kod cangkuk .git/hooks/pre-commit
sudah wujud, ia boleh dilampirkan) supaya pemeriksaan automatik dicetuskan pada setiap komit: pre-commit
#!/bin/bash git diff --cached --name-status --diff-filter=ACMR | while read STATUS FILE; do if [[ "$FILE" =~ ^.+(php|inc)$ ]]; then php -l "$FILE" 1>/dev/null if [[ $? -ne 0 ]]; then echo "Aborting commit due to files with syntax errors" >&2 exit 1 fi fi done
Laporkan perubahan yang telah berlaku antara komitmen, pilihan di atas hanya mengembalikan fail yang telah ditambah (a), disalin (c), diubah suai (m), atau dinamakan semula (r) dalam komites sementara. Fail dengan sambungan git diff
atau .php
akan digunakan oleh sasaran untuk pemeriksaan gaya kod, dan kegagalan cek akan menyebabkan skrip keluar dengan kod pulangan bukan sifar, membatalkan komited itu sendiri. .inc
Hantar Pemeriksaan Ejaan Mesej
Penyerahan profesional adalah penting. Gunakan Git Hook untuk memeriksa ejaan mesej yang dikemukakan secara automatik untuk mengelakkan kesilapan ejaan yang janggal. Kod berikut boleh disimpan sebagai (atau tambahan); Sekiranya terdapat ralat, anda boleh membetulkan mesej komit dengan segera dengan menjalankan .git/hooks/post-commit
. git commit --amend
#!/bin/bash ASPELL=$(which aspell) if [[ $? -ne 0 ]]; then echo "Aspell not installed – unable to check spelling" >&2 exit fi AWK=$(which awk) if [[ $? -ne 0 ]]; then echo "Awk not installed – unable to filter spelling errors" >&2 exit fi # ... (rest of the spell-check code)
) menggunakan pengenal yang diekstrak dari kod sumber projek dan lulus kepada ASPELL bersama -sama dengan post-checkout
untuk mengurangkan bilangan positif palsu. --extra-dicts
Semak Spesifikasi Kod
Anda boleh menggunakan Git Hook untuk memeriksa secara automatik bahawa kod anda mematuhi spesifikasi kod yang telah anda pakai. Kod berikut boleh digunakan sebagai cangkuk post-commit
(.git/hooks/post-commit
) untuk memeriksa secara automatik konflik format.
#!/bin/bash git diff --cached --name-status --diff-filter=ACMR | while read STATUS FILE; do if [[ "$FILE" =~ ^.+(php|inc)$ ]]; then php -l "$FILE" 1>/dev/null if [[ $? -ne 0 ]]; then echo "Aborting commit due to files with syntax errors" >&2 exit 1 fi fi done
Komposer Run Asli
Anda boleh menggunakan Git Hook untuk menjalankan komposer secara automatik semasa penempatan. Kod berikut boleh diletakkan dalam fail .git/hooks/post-receive
repositori jauh untuk cangkuk post-receive
, yang akan secara automatik menjalankan komposer.
#!/bin/bash ASPELL=$(which aspell) if [[ $? -ne 0 ]]; then echo "Aspell not installed – unable to check spelling" >&2 exit fi AWK=$(which awk) if [[ $? -ne 0 ]]; then echo "Awk not installed – unable to filter spelling errors" >&2 exit fi # ... (rest of the spell-check code)
Kesimpulan
Artikel ini berkongsi beberapa cangkuk git yang diharapkan memudahkan proses pembangunan aplikasi anda dan meningkatkan kecekapan.
git cangkuk faq
(bahagian Soalan Lazim ditinggalkan di sini kerana artikel itu terlalu panjang dan tidak sepadan dengan matlamat asal pseudo. Ia boleh dikekalkan atau dipadamkan seperti yang diperlukan.)
Atas ialah kandungan terperinci Cangkuk git untuk bersenang -senang dan keuntungan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!