Saya telah menulis hook pasca-komit Git dan berfungsi dengan benar. Namun, saya ingin menambahkan kait ini untuk diterapkan ke semua repositori git saat ini (dan masa depan) yang sedang saya kerjakan. Saya mencoba menambahkan hook ke saya ~/.git/hooks/
daripada di direktori hook di direktori proyek, namun, ini sepertinya tidak berhasil.
Apakah ada cara untuk membuat kait Git global yang akan berlaku untuk semua repositori di sistem saya (tanpa harus menyalinnya ke setiap direktori proyek)? Jika tidak, apa solusi terbaik ke depan - mungkin templat git-init?
Jawaban:
Dengan git 2.9+ (Juni 2016), yang akan Anda lakukan adalah:
Lihat " ubah kait git default ": ini telah dilakukan untuk mengelola kait terpusat.
sumber
/.git/hooks/pre_commit
bisa saya tunjukkan itu?Pada git 1.7.1, Anda dapat mengatur init.templatedir di gitconfig Anda untuk memberi tahu git ke mana harus mencari templat.
Atur seperti ini:
Setelah itu, repositori baru yang Anda buat atau tiru akan menggunakan direktori ini untuk template. Tempatkan kait yang Anda inginkan
~/.git_template/hooks
. Repositori yang ada dapat diinisialisasi ulang dengan templat yang sesuai dengan menjalankangit init
direktori yang sama.git
.Untuk versi git yang lebih tua dari 1.7.1, menjalankan
git init --template ~/.git_template
akan berfungsi jika Anda seperti saya dan masih ingin mengelola.git_template
dir Anda bersama dengan sisa file dot Anda. Anda juga dapat menggunakan$GIT_TEMPLATE_DIR
lingkungan untuk mengetahui digit init
mana direktori templat Anda berada.sumber
git init
repo yang ada menghapusnya - itu tidak , lihat: stackoverflow.com/questions/5149694/…git init
sebenarnya tidak memperbarui kait untuk saya. Sepertinya tidak akan menimpa file yang sudah ada. stackoverflow.com/questions/10791486/ . Alih-alih, Anda harus menghapus file hook lama terlebih dahulu.Jika Anda menginginkannya di mana saja di sistem Anda (termasuk pengguna di samping Anda), Anda dapat memodifikasi konten direktori templat yang diinstal - yang ada di dalamnya
$PREFIX/share/git-core/templates/hooks
, di mana$PREFIX
mungkin/usr/local
atau/usr
.Jika Anda ingin ini hanya untuk Anda, maka ya, hal paling sederhana adalah
--template
pilihan git-init. Anda dapat dengan mudah menyimpan direktori templat pribadi yang memiliki symlink kembali ke versi terinstal default yang ingin Anda pertahankan (kait individu, direktori info ...) dan kemudian konten Anda sendirihooks/post-commit
dan apa pun yang ingin Anda sesuaikan.sumber
git init
lagi dan menambahkan kait baru saya./Applications/SourceTree.app/Contents/Resources/git_local/share/git-core/templates/hooks
mingw64\share\templates\hooks
(atau mingw32 untuk 32-bit)mingw64\share\git-core\templates\hooks
(gfw 2.25)Pendekatan minimalis adalah membuat
git_hooks/
direktori di repositori Anda untuk melacak kait yang Anda tulis untuk proyek itu, membawanya ke perhatian pengguna di masa depan dengan menyebutkannya dalam aREADME
, dan mengandalkan mereka untuk melakukan hal yang benar setelah mereka dikloning. Saya telah merenungkan hal ini untuk sementara waktu dan memilih pendekatan tambahan. Di ujung jalan saya mungkin mempertimbangkan menggunakan alat seperti git-hooks .sumber