'Git push' yaptığımda git kancaları uzaktan kumandaya itiliyor mu?


95

Repo / .git / hooks / post-commit'deki yerel depomda yeni bir hook komut dosyası oluşturursam ve sonra "git push" komutunu çalıştırırsam, kancalar uzaktan kumandaya itilir mi? Öyleyse, diğer geliştiriciler aynı kaynaktan "git pull" çalıştırdığında yeni kancalarımı alacaklar mı?



Yanıtlar:


81

Hayır. Kancalar her depo için geçerlidir ve asla itilmez. Benzer şekilde, repo yapılandırması da itilmez, içeride hiçbir şey yoktur .git/infoveya başka şeyler de yoktur.

İtme ve çekme, yalnızca dalları / etiketleri ve commit nesneleri (ve bir işlemeden erişilebilen her şeyi, örneğin ağaçlar, bloblar) değiştirir.


14
Ortada kancalara sahip olmanın ve onları her klona çekip uygulamanın bir yolu var mı?
f1wade

4
@ f1wade .githooksSürüm kontrollü olacak bir dizin ekleyebilir, sonra ya sym-link veya içeriden sarmalayıcı kanca betikleri oluşturabilirsiniz .git. Klonlama otomatik olarak bağlanmaz, .githooksancak kablolandıktan sonra kanca komut dosyalarının yeni sürümlerini itebilir ve çekebilirsiniz.
Philip Couling

47

Hayır, git kancaları havuz kodunun bir parçası olmadıkları için itilmez veya çekilmez.

Basit istemci tarafı ve sunucu tarafı kancalarının bir listesi için lütfen belgelere bakın .

Belirli bir depodan klonlayan veya çeken tüm istemciler için bazı kancaları etkinleştirmek istiyorsanız, kancaları kod tabanınıza eklemeniz ve ardından bunları kopyalamak veya bunlardan bağlantı kurmak için kendi komut dosyanızı oluşturmanız gerekir repo/.git/hooks/.


4
ama kopya komut dosyası nasıl çağrılır?
Adam Johns

6
@AdamJohns Kullanıcı / geliştirici tarafından, muhtemelen devin setup.shdepoyu ilk klonladıklarında çalışması biçiminde çağrılır . Bundan sonra, kancalara yapılan güncellemeler, örneğin her çekmeden sonra onları güncelleyen bir komut dosyasını yeniden çalıştıran bir kancaya sahip olarak otomatik olarak gerçekleşebilir. Böylece geliştiricinin bunu kendi başına yapmasına güvenmek zorunda değilsiniz.
cm92

4

Maalesef hayır, ancak git 2.9'dan beri bunları .githooks klasörüne yerleştirebilir (diğerlerinde belirtildiği gibi) ve çalıştırabilirsiniz:

git config --local core.hooksPath .githooks/

Yani sembolik bağlantılara veya dosya kopyalamaya gerek yok.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.