Git Nedir?
İngilizce: Git
Git, kod değişikliklerini commit geçmişiyle izleyen, dallanma ve birleştirme üzerinden ekiplerin paralel çalışmasını sağlayan dağıtık versiyon kontrolüdür.
Git Nedir?
Git, dosyalardaki değişiklikleri zaman içinde izleyen dağıtık versiyon kontrol sistemidir. Her geliştiricinin makinesinde tam bir depo geçmişi bulunur; bu yüzden yalnızca merkezi sunucuya bağlı çalışmaz.
Nasıl Çalışır?
Git değişiklikleri commit adı verilen kayıtlara dönüştürür. Commit, dosya durumunu, yazarı, zamanı ve önceki commit ile bağlantıyı içerir. Branch’ler farklı çalışma hatları açmayı sağlar; merge veya rebase ile bu hatlar tekrar birleştirilebilir.
Uzak depolar ekip çalışması için kullanılır. Geliştirici değişikliklerini push eder, başkalarının değişikliklerini pull veya fetch ile alır. Çakışma varsa Git aynı satırda farklı değişiklikleri gösterir ve insan kararı ister.
İş Akışındaki Yeri
Git, yazılım ekiplerinde kod geçmişini, geri alma senaryolarını, sürüm etiketlerini ve inceleme süreçlerini yönetir. CI/CD sistemleri genellikle Git olaylarına bağlanır: push, tag veya pull request geldiğinde test ve dağıtım çalışır.
GitHub Actions gibi araçlar bu olayları otomasyona çevirir. Git’i doğru kullanmak yalnızca komut bilmek değildir; anlamlı commit, küçük değişiklik, temiz branch stratejisi ve anlaşılır merge geçmişi de gerekir.
İlgili Terimler
CI/CD, kod değişikliklerini otomatik derleme, test ve dağıtım hatlarından geçirerek sürümü tekrarlanabilir hale getiren DevOps pratiğidir.
Code ReviewCode review, kod değişikliğinin ana dala alınmadan önce ekipçe incelenip mantık, güvenlik ve bakım risklerinin yakalandığı süreçtir.
Feature BranchFeature branch, yeni bir işin ana koddan ayrılmış Git dalında geliştirilmesini sağlayarak deneme, inceleme ve birleştirmeyi kontrollü tutar.
GitHub ActionsGitHub Actions, depo olaylarıyla tetiklenen YAML iş akışları üzerinden test, build, güvenlik taraması ve dağıtım otomasyonu çalıştırır.
GitHubGitHub, Git depolarını barındıran; pull request, issue, paket, güvenlik ve otomasyon özellikleriyle yazılım ekiplerini bir araya getiren platformdur.
GitOpsGitOps, altyapı ve uygulama durumunu Git deposunda tanımlayıp kümeye otomatik senkronize eden dağıtım yaklaşımıdır.
MonorepoMonorepo, birden fazla uygulama ve paketi tek Git deposunda tutarak ortak araç, bağımlılık ve değişiklik yönetimi sağlar.
Semantic VersioningSemantic Versioning, sürüm numarasını MAJOR.MINOR.PATCH biçiminde kullanarak kırıcı değişiklik, yeni özellik ve hata düzeltmesini ayıran standarttır.