Rumah > pembangunan bahagian belakang > tutorial php > Cangkuk git untuk bersenang -senang dan keuntungan

Cangkuk git untuk bersenang -senang dan keuntungan

Christopher Nolan
Lepaskan: 2025-02-23 10:29:09
asal
300 orang telah melayarinya

Git Hooks for Fun and Profit

mata teras

    cangkuk git adalah skrip yang dilaksanakan ketika melaksanakan perintah tertentu, membantu mempermudah proses pembangunan dan meningkatkan kecekapan. Skrip ini boleh digunakan untuk melakukan pemeriksaan gaya kod secara automatik semasa proses komit untuk mengelakkan melakukan kesilapan sintaks.
  • Gunakan Git Hook untuk memeriksa ejaan mesej yang dikemukakan secara automatik, mengurangkan peluang salah ejaan dan mengekalkan profesionalisme. Di samping itu, cangkuk boleh digunakan untuk memeriksa secara automatik ralat format untuk memastikan bahawa kod memenuhi piawaian yang diterima pakai.
  • cangkuk git juga boleh digunakan untuk melaksanakan tugas secara automatik dalam repositori jauh seperti komposer semasa penempatan. Ini memudahkan proses menguruskan kebergantungan aplikasi dan memudahkan proses penempatan.
Apabila melaksanakan perintah tertentu, git mencari direktori

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
Salin selepas log masuk
Salin selepas log masuk

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)
Salin selepas log masuk
Salin selepas log masuk
Anda juga boleh menyusun kamus tambahan (yang boleh dicetuskan oleh cangkuk

) 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
Salin selepas log masuk
Salin selepas log masuk

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)
Salin selepas log masuk
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan