Lewati Git, lakukan kait

506

Saya melihat hook git yang mencari pernyataan cetak dalam kode Python. Jika ditemukan pernyataan cetak, itu mencegah komit git.

Saya ingin mengganti kait ini dan saya diberitahu bahwa ada perintah untuk melakukannya. Saya belum dapat menemukannya. Adakah pikiran?

Ben
sumber
1
Sebuah solusi yang lebih umum (juga berfungsi untuk perintah git berbeda dari commit): stackoverflow.com/questions/58337861/…
Gabriel Devillers

Jawaban:

869

Mungkin (dari git commithalaman manual ):

git commit --no-verify

-n  
--no-verify

Opsi ini memintas kait pre-commit dan commit-msg. Lihat juga githooks (5) .

Seperti dikomentari oleh Blaise , -ndapat memiliki peran yang berbeda untuk perintah tertentu.
Misalnya, git push -nsebenarnya adalah dorong kering.
Hanya git push --no-verifyakan melewatkan hook.


Catatan: Git 2.14.x / 2.15 meningkatkan perilaku --no-verifikasi:

Lihat komit 680ee55 (14 Agu 2017) oleh Kevin Willford (``) .
(Digabung oleh Junio ​​C Hamano - gitster- di commit c3e034f , 23 Agu 2017)

commit: lewati membuang indeks jika tidak ada pre-commitkait

" git commit" digunakan untuk membuang indeks dan membaca kembali dari sistem file untuk berjaga-jaga jika pre-commitkait telah memperbaruinya di tengah; ini telah dioptimalkan ketika kita tahu kita tidak menjalankan pre-commithook.


Davi Lima menunjukkan di komentar yang git cherry-picktidak tidak mendukung --no-memverifikasi.
Jadi jika pick-ceri memicu hook pre-commit, Anda mungkin, seperti dalam posting blog ini , harus mengomentari / menonaktifkan entah bagaimana hook itu agar git cherry-pick Anda untuk melanjutkan.
Proses yang sama akan diperlukan dalam kasus a git rebase --continue, setelah menggabungkan resolusi konflik.

VONC
sumber
1
Untuk cherry-pick, lihat web-dev.wirt.us/info/git-drupal/git-continue-vs-no-verify
Davi Lima
1
@DaviLima Terima kasih. Saya telah memasukkan komentar Anda dalam jawaban visibilitas.
VonC
1
terima kasih, @onc hal yang sama terjadi pada git rebase --continuebtw
Davi Lima
Hai, dalam kasus saya, seseorang di tim saya terus memperbarui hookfolder saya dengan beberapa skrip pra-komit, itu sangat menjengkelkan, adakah cara saya bisa mencegah hookfolder saya ditimpa oleh git pull?
Zennichimaro
@Zennichimaro Mungkin Anda dapat menyalin folder pengait repo di tempat lain, dan menyiapkan pengait post-merge ( git-scm.com/docs/githooks#_post_merge ) yang akan mendeteksi apakah tarikan memengaruhi folder pengait repo, dan akan mengusulkan untuk menyalinnya konten ke folder kait lokal Anda (di luar repo): dengan cara itu, Anda setidaknya dapat mengontrol apakah Anda ingin kait Anda ditimpa atau tidak oleh apa yang didorong oleh kolega Anda.
VonC
22

Dari man githooks:

pre-commit
Hook ini dipanggil oleh git commit, dan dapat dilewati dengan opsi --no-verifikasi. Tidak memerlukan parameter, dan dipanggil sebelum mendapatkan pesan log komit yang diajukan dan membuat komit. Keluar dengan status bukan nol dari skrip ini menyebabkan git berkomitmen untuk membatalkan.

Chris Eberle
sumber
2

Bagi mereka very beginnersyang telah menghabiskan beberapa jam untuk komitmen ini (dengan commentdan no verify) tanpa masalah lebih lanjut

git commit -m "Some comments" --no-verify
Moumit
sumber