Git Kancalarını Anlama
Farklı Git kancası türlerini ve bunların Git iş akışındaki çalıştırılma noktalarını keşfedin.
Git Kancalarını Anlama, CoddyKit'te ücretsiz bir DevOps Bootcamp dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, DevOps Bootcamp öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. DevOps Bootcamp kursu toplamda 4 dersten oluşur.
Git Kancaları Nedir?
Git Kancaları'na hoş geldiniz! Git kancaları, işleme oluşturma, gönderme veya gönderilmiş işlemeleri alma gibi olaylardan önce ya da sonra Git'in otomatik olarak çalıştırdığı güçlü ve özelleştirilebilir betiklerdir.
Bunları Git iş akışınızdaki otomatik denetim noktaları veya eylemler olarak düşünebilirsiniz. Proje standartlarını uygulamanıza, görevleri otomatikleştirmenize ve diğer sistemlerle bütünleşmenize yardımcı olurlar.
Kancalar Nerede Bulunur
Her Git deposuyla birlikte bir .git/hooks dizini gelir. İçinde, genellikle .sample ile biten örnek kanca betiklerini bulursunuz.
Bir kancayı etkinleştirmek için .sample uzantısını kaldırmanız ve dosyayı çalıştırılabilir yapmanız yeterlidir. Git daha sonra kancayı uygun zamanda çalıştırır.
- Konum:
.git/hooks/ - Dosyalar: Kabuk betikleri (Bash, Python, Ruby vb.)
- Etkinleştirme: Yeniden adlandırın ve çalıştırılabilir yapın
İstemci Tarafı ve Sunucu Tarafı
Git kancaları, çalıştıkları yere göre iki ana türe ayrılır:
- İstemci Tarafı Kancaları: Yerel makinenizde çalışır (örneğin, işleme oluşturmadan veya yeniden temel almadan önce). Kişisel iş akışı otomasyonu ve yerel ilkeleri uygulamak için kullanılır.
- Sunucu Tarafı Kancaları: Uzak Git sunucusunda çalışır (örneğin, kodu paylaşılan bir depoya gönderdiğinizde). Proje genelindeki ilkeleri herkes için uygular.
İstemci Kancası: pre-commit
pre-commit kancası, en yaygın istemci tarafı kancalarından biridir. Git bir işlemeyi resmen oluşturmadan *önce* çalışır.
pre-commit betiği sıfır olmayan bir durumla sonlanırsa Git işlemeyi iptal eder. Bu kanca şu görevler için idealdir:
- Kod stili denetimi (biçimlendirme hatalarını kontrol etme)
- Birim testlerini çalıştırma
- Büyük dosyaları veya hassas verileri kontrol etme
İstemci Kancası: commit-msg
commit-msg kancası, işleme iletinizi girdikten *sonra* ancak işleme kesinleştirilmeden *önce* çalışır.
Bu kanca, işleme iletilerinizin belirli kurallara veya biçimlere uymasını sağlamak için kullanışlıdır. Örneğin şunları kontrol edebilir:
- İletinin bir iş kimliğiyle başlayıp başlamadığını (örneğin,
[JIRA-123]) - İleti uzunluğunun sınırlar içinde olup olmadığını
- Belirli anahtar kelimelerin bulunup bulunmadığını
İstemci Kancası: post-commit
post-commit kancası, bir işleme başarıyla oluşturulduktan *hemen sonra* çalışır.
pre-commit veya commit-msg'den farklı olarak bu kanca, işlemenin sonucunu değiştiremez. Genellikle bildirim veya bütünleştirme amacıyla kullanılır; örneğin:
- Ekip üyelerine bildirim gönderme
- Bir proje yönetimi aracını güncelleme
- Sürekli tümleştirme (CI) derlemesini tetikleme (bu işlem sunucu tarafı kancalarında daha yaygındır)
Sunucu Kancası: pre-receive
Sunucu tarafı kancalarına geçtiğimizde, pre-receive uzak depodaki herhangi bir başvuru (dallar veya etiketler gibi) güncellenmeden önce çalıştırılır.
Bu kanca, aşağıdakiler gibi önemli depo ilkelerini zorunlu kılmak için oldukça etkilidir:
maindalına doğrudan gönderme yapılmasını önleme- Tüm işlemelerin imzalandığından emin olma
- İşlemeyi yapan kişinin kimliğini doğrulama
Bu kanca sıfır olmayan bir çıkış koduyla sonlanırsa gönderme işleminin tamamı reddedilir.
Sunucu Kancası: post-receive
post-receive kancası, bir gönderme işlemi uzak depodaki başvuruları başarıyla güncelledikten sonra çalışır.
post-commit kancasına benzer şekilde, bu kanca gönderme işlemini reddedemez. Genellikle şu amaçlarla kullanılır:
- Sürekli tümleştirme/sürekli teslim pipeline'larını tetikleme
- Harici sorun takip sistemlerini güncelleme
- Ekibe e-posta bildirimleri gönderme
- Kodu bir hazırlık ortamına dağıtma
Basit Bir Kanca Oluşturma
Bir kanca oluşturmak için kancanın adıyla (örneğin pre-commit) bir dosya oluşturup bunu .git/hooks/ dizininize yerleştirmeniz yeterlidir. Çok temel bir kanca oluşturalım:
#!/bin/sh
# This pre-commit hook will always succeed
echo "Running pre-commit hook..."
exit 0Kancaları Çalıştırılabilir Hâle Getirme
Kanca betiğinizi oluşturduktan sonra onu çalıştırılabilir hâle getirmeniz gerekir. Aksi takdirde Git onu çalıştırmaz. Terminalinizde chmod komutunu kullanın:
chmod +x .git/hooks/pre-commit
Artık her işlemeyi gerçekleştirmeyi denediğinizde Git bu betiği çalıştıracaktır!
Hızlı Kontrol: Kanca Zamanlaması
Git kancaları iş akışınızın belirli noktalarında çalışır. Zamanlamalarını anlamak, kancaları etkili biçimde kullanmanın anahtarıdır.
Özet: Git Kancalarını Anlama
Git kancalarının güçlü dünyasına ilk adımı attınız!
- Git kancaları, Git olayları sırasında eylemleri otomatikleştiren betiklerdir.
- Deponuzun
.git/hooks/dizininde bulunurlar. - Kancalar ya istemci tarafı (yerel makine) ya da sunucu tarafı (uzak depo) olur.
pre-commitvepre-receivegibi temel kancalar, işlemleri engelleyerek ilkeleri zorunlu kılabilir.post-commitvepost-receivegibi kancalar, işlem sonrası bildirimler veya tümleştirmeler içindir.
Sırada, belirli kancalara ilişkin uygulamalı örnekleri hayata geçirmeyi inceleyeceğiz!
Sıkça Sorulan Sorular
“Git Kancalarını Anlama” dersi ücretsiz mi?
Evet — “Git Kancalarını Anlama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve DevOps Bootcamp kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. DevOps Bootcamp kursu toplamda 4 dersten oluşur.
“Git Kancalarını Anlama” dersinde ne öğreneceğim?
Farklı Git kancası türlerini ve bunların Git iş akışındaki çalıştırılma noktalarını keşfedin. DevOps Bootcamp ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
DevOps Bootcamp öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te DevOps Bootcamp, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Git Kancalarını Anlama” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu DevOps Bootcamp dersinde kod yazıp çalıştırabilir miyim?
Evet. Her DevOps Bootcamp dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Git Kancalarını Anlama
- Gönderim Öncesi ve Birleştirme Sonrası Kancaları
- Git Yapılandırmasını Özelleştirme
- Husky ile Kancaları Paylaşma