Apakah ada kait git untuk menarik?

157

Saya perlu melakukan beberapa tindakan (menyiapkan gettext * .mo file pesan) pada proyek saya setiap kali saya menjalankan git pull. Apakah ada git hook yang cocok, yang dapat saya gunakan untuk tujuan ini?

pesan
sumber
15
@Lan: Itu jelas bukan duplikat. Pertanyaan ini tentang pengait di sisi lokal , tempat Anda berlari git pull. Yang Anda tautkan adalah tentang memicu kait pada remote , ketika seseorang menariknya. (Dan ini adalah pertanyaan yang sangat aneh - ini menyiratkan bahwa mereka menggunakan repo sentral non-telanjang ...)
Cascabel
2
@Lan: Cukup mudah untuk dilewatkan jika Anda membaca sekilas - harap saya tidak terlalu keras. Saya hanya paranoid tentang pertanyaan yang salah ditutup, karena membuka kembali suara membutuhkan waktu lebih lama untuk diakumulasikan.
Cascabel
1
Jefromi: Anda benar sekali. Siapa Takut. Saya hanya sedih bahwa saya skim dan memulai penutupan.
Alan Haggai Alavi

Jawaban:

184

The githooksHalaman manusia adalah daftar lengkap kait. Jika tidak ada di sana, itu tidak ada.

Yang mengatakan, ada adalah hook pasca-merge, dan semua tarikan termasuk gabungan, meskipun tidak semua penggabungan adalah tarikan. Ini dijalankan setelah penggabungan, dan tidak dapat memengaruhi hasilnya. Tidak pernah dieksekusi jika ada konflik; Anda harus mengambilnya dengan kait pasca-komit jika benar-benar penting, atau memintanya secara manual.

Cascabel
sumber
39
@ Jefromi "semua tarikan termasuk gabungan", bahkan jika saya melakukan tarikan --rebase?
FMaz008
11
Ditemukan juga bahwa penggabungan tidak pernah dieksekusi ketika berjalan git pulljika tidak ada perubahan yang harus ditarik (Anda sudah mutakhir).
Joe Bergantine
11
@jbergantine: Saya kira saya tidak tepat dalam jawaban saya - semua tarikan yang bukan no-op mencakup penggabungan. Tapi ... secara umum, jika Anda mencoba untuk mengambil tindakan setiap kali terjadi penggabungan, saya rasa Anda tidak ingin mengambil tindakan ketika seseorang melakukan no-op merger. Misalnya, akan sia-sia bagi OP untuk membuat ulang file-file itu jika tidak ada yang berubah.
Cascabel
12
Jika Anda benar-benar ingin melakukan sesuatu setiap kali Anda menarik ... Anda bisa alias 'git pull' sehingga Anda memanggil skrip yang melakukan git pull kemudian melakukan sesuatu yang lain
Shadow Radiance
13
git pulldengan rebase (baik dengan --rebaseatau dengan konfigurasi pull.rebase=true) tidak termasuk gabungan dan tidak akan memicu kait pasca-gabungan. Untuk kasus ini, Anda dapat menentukan --no-rebaseuntuk memastikan kait dipicu atau memanfaatkan kait pasca-penulisan ulang.
Victor Schröder