Jika saya membuat skrip hook baru di repositori lokal saya di repo / .git / hooks / post-commit dan kemudian saya menjalankan "git push" apakah hook didorong ke remote? Lalu, ketika pengembang lain menjalankan "git pull" dari sumber yang sama, apakah mereka akan mendapatkan kait baru saya?
95
Jawaban:
Tidak. Hook adalah per repositori dan tidak pernah didorong. Demikian pula, konfigurasi repo tidak didorong, juga tidak ada apa pun
.git/info
, atau sejumlah hal lainnya.Mendorong dan menarik hanya menukar cabang / tag dan objek komit (dan apa pun yang dapat dijangkau dari komit, misalnya pohon, gumpalan).
sumber
.githooks
direktori yang akan dikontrol versinya, lalu sym-link atau buat skrip hook pembungkus dari dalam.git
. Kloning tidak akan.githooks
terhubung secara otomatis tetapi setelah terhubung, Anda dapat mendorong dan menarik versi baru dari skrip hook.Tidak, git hook tidak didorong atau ditarik, karena mereka bukan bagian dari kode repositori.
Silakan merujuk ke dokumentasi untuk daftar hook sisi-klien dan sisi-server sederhana.
Jika Anda ingin mengaktifkan beberapa hook untuk semua klien yang mengkloning atau menarik dari repositori tertentu, Anda harus menambahkan hook ke basis kode Anda dan kemudian membuat skrip Anda sendiri untuk menyalinnya, atau menautkannya dari
repo/.git/hooks/
.sumber
setup.sh
yang dijalankan dev ketika mereka pertama kali mengkloning repositori. Setelah ini, pembaruan pada hook dapat terjadi secara otomatis dengan memiliki hook yang menjalankan ulang skrip yang memperbaruinya setelah setiap penarikan, misalnya. Jadi, Anda tidak harus bergantung pada pengembang untuk melakukannya sendiri.Sayangnya tidak ada tetapi sejak git 2.9 Anda dapat menempatkannya ke dalam folder .githooks (seperti yang disebutkan orang lain) dan menjalankan:
Jadi tidak perlu symlink atau file copy.
sumber