SOFTWARE DESIGN AND DEVELOPMENT: VERSION CONTROL SYSTEM EĞİTİMİ

Sürüm kontrolü yazılım tasarımının parçası yapın

Sürüm kontrol kavramları, Git komutları, nesne modeli, dal stratejileri, etiketleme, hook ve CI entegrasyonunu yazılım geliştirme süreciyle bağlayın

Sürüm kontrol sistemi kavramlarını Git komutları, nesne modeli, dallanma stratejisi, hook ve CI entegrasyonuyla yazılım projesine uygulayın.

3 gün Temel Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

Yazılım geliştirme yaşam döngüsünde sürüm kontrol sistemi

Eğitim, sürüm kontrol sistemini yazılım tasarım ve geliştirme sürecinin merkezine yerleştirir. Merkezi ve dağıtık sistemler, Git'in snapshot modeli, commit ve dal akışı, geri alma, uzak depo, rebase, nesne ve referans yapısı, etiket ve SemVer ile sürüm yönetimi, dallanma stratejileri, pre-commit hook'lar, basit bir CI hattı ve ekip sözleşmesi uygulamalı olarak ele alınır.

Süre ve Format

3 Gün. Her gün dört modül; 1. gün Sürüm Kontrol Temelleri; 2. gün Uzak Depo, Tarihçe ve İç Yapı; 3. gün Strateji, Otomasyon ve Takım Çalışması.

Seviye

Temel Seviye — Sürüm kontrol sistemlerinin kavramlarından Git iç yapısı, dallanma, hook ve CI entegrasyonuna uzanan yazılım geliştirme yelpazesi

Öğrenme Metodu

Katılımcılar örnek bir yazılım projesini baştan Git altında yürütür; sürüm etiketler, hook ekler, dallanma stratejisi uygular ve basit CI ile doğrular.

Neden Bu Eğitim?

🧭Sıfırdan Güven

Komutların arkasındaki mantığı öğrenir, hatadan korkmadan commit, dal ve birleştirme yaparsınız.

🛟Geri Dönüş Güvencesi

reset, revert ve reflog ile yanlış bir komutun sonucunu kontrollü şekilde geri alırsınız.

🤝Ekiple Uyum

Uzak depo, dal ve pull request akışına hazır olarak ekip projelerine ilk günden katkı verirsiniz.

Anahtar Konular

version control systemsürüm kontrol sistemiyazılım geliştirme gitgit nesne modelisemverdallanma stratejisigit hooksgit ci entegrasyonugit rebaseyazılım yaşam döngüsü git
“Sürüm kontrol, yazılımın hafızasıdır; hafızasız yazılım öğrenemez.”

Ön Koşullar

Eğitimden verim almak için faydalı olacak bilgi ve ortam gereksinimleri

1
Bilgisayar Kullanımı

Dosya, klasör ve terminal açma gibi temel bilgisayar becerileri yeterlidir.

2
Kurulu Git

Eğitim öncesinde Git ve bir metin editörü (ör. VS Code) kurulu bir bilgisayar gerekir.

3
Terminal Aşinalığı

cd, ls ve mkdir gibi temel komutları görmüş olmak faydalı olur.

4
Uzak Depo Hesabı

Uygulamalar için ücretsiz bir GitHub veya GitLab hesabı hazır bulunmalıdır.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefiKatılımcı gün sonunda Sürüm kontrol sisteminin rolünü açıklar, temel Git akışını uygular ve hataları geri alır.
Modül 1
Sürüm Kontrol Kavramları ve Git Mimarisi
  • Merkezi (SVN, CVS) ve dağıtık (Git, Mercurial) sürüm kontrol sistemlerinin çalışma farkları
  • Çalışma dizini, staging area (index) ve yerel depo üçlüsü; dosyanın untracked, modified, staged, committed durumları
  • Snapshot tabanlı veri modeli ve SHA-1 ile içerik adresleme; commit kimliğinin nasıl oluştuğu
  • HEAD, dal ve etiketlerin yalnızca commit'e işaret eden hafif referanslar olduğu gerçeği
  • Sürüm kontrolünün ekip içindeki yeri: değişiklik izlenebilirliği, denetim izi ve geri dönüş güvencesi
  • Git'in internet olmadan çalışabilmesi ve yerel depoda tam tarihçenin bulunmasının günlük işe etkisi
Modül 2
Temel Git Komutları ve Commit Akışı
  • git init ve git clone ile depo oluşturma, .git dizininin içeriği
  • git status, git add -p ve git commit -m ile parça parça (hunk) seçerek commit hazırlama
  • git diff, git diff --staged ve git diff HEAD~1 ile değişikliklerin karşılaştırılması
  • git log --oneline --graph --decorate, --author ve -S ile tarihçede arama
  • .gitignore desenleri, global ignore dosyası ve zaten izlenen dosyayı git rm --cached ile çıkarma
  • Anlamlı commit mesajı yazımı: konu satırı sınırı, gövde, Conventional Commits formatı
Modül 3
Değişiklikleri Geri Alma ve Kurtarma
  • git restore ve git restore --staged ile çalışma dizini ve staging değişikliklerini geri alma
  • git reset --soft, --mixed ve --hard arasındaki farklar ve hangi alanı etkiledikleri
  • git commit --amend ile son commit'in mesajını ve içeriğini düzeltme
  • git revert ile paylaşılmış tarihçeyi bozmadan ters commit üretme, merge commit revert (-m 1)
  • git reflog ile kaybolan commit ve silinen dalların kurtarılması
  • git stash push -u, stash list, stash pop ve apply ile yarım işi park etme; git clean -fd uyarıları
Modül 4
Dallanma ve Birleştirme
  • git branch, git switch -c ve git checkout farkları; dal oluşturmanın neden ucuz olduğu
  • Fast-forward ve üç yönlü (recursive/ort) birleştirme; --no-ff ile birleştirme commit'i zorlama
  • Çakışma işaretleri (<<<<<<<, =======, >>>>>>>) ve elle çözüm, git merge --abort
  • git mergetool, VS Code birleştirme editörü ve diff3 çakışma stili (merge.conflictstyle)
  • git branch --merged, -d ve -D ile birleşmiş dalların temizliği
  • Uzun ömürlü dal ile kısa ömürlü konu dalı (topic branch) arasındaki pratik farklar
Günün hedefiKatılımcı gün sonunda Uzak depoyla çalışır, tarihçeyi düzenler, Git nesne modelini inceler ve sürümleri etiketler.
Modül 1
Uzak Depolar ve Senkronizasyon
  • git remote add/-v, origin ve upstream adlandırma kuralları
  • git fetch ile git pull farkı; pull --rebase ve pull.rebase yapılandırması
  • git push -u, upstream tracking ve git branch -vv çıktısının okunması
  • git push --force-with-lease ile güvenli zorla gönderim ve neden --force'tan üstün olduğu
  • git remote prune ve fetch --prune ile uzakta silinmiş dalların yerelden temizlenmesi
  • Birden fazla uzak depo kullanımı: fork akışında upstream senkronizasyonu ve mirror push
Modül 2
Rebase ve Tarihçe Düzenleme
  • git rebase main ile dalı güncel tabana taşıma ve merge ile görsel tarihçe farkı
  • git rebase -i ile pick, reword, edit, squash, fixup ve drop komutları
  • git commit --fixup ve rebase --autosquash ile düzeltme commit'lerinin otomatik birleştirilmesi
  • git cherry-pick ile tek commit taşıma, aralık (A..B) ve -x seçeneği
  • Rebase sırasında çakışma: rebase --continue, --skip, --abort; rerere ile çözümlerin hatırlanması
  • Altın kural: paylaşılmış dalda rebase yapmama ve yeniden yazılmış tarihçenin ekibe etkisi
Modül 3
Git İç Yapısı: Nesneler ve Referanslar
  • blob, tree, commit ve annotated tag nesneleri; git cat-file -p ve git hash-object ile inceleme
  • .git/objects dizini, loose object ile packfile farkı ve git gc / git repack çalışması
  • refs/heads, refs/tags, refs/remotes ve packed-refs; HEAD'in symbolic-ref olarak davranışı
  • git ls-tree, git rev-parse ve git show-ref ile iç verilere erişim
  • Index dosyası (.git/index) ve git ls-files --stage çıktısı
  • Reachability kavramı, yetim (dangling) nesneler ve git fsck ile bütünlük kontrolü
Modül 4
Etiketleme ve Sürüm Yönetimi
  • Lightweight ve annotated etiket farkı; git tag -a -m ve git push --tags
  • Semantic Versioning (MAJOR.MINOR.PATCH) kuralları ve ön sürüm etiketleri (-rc.1, -beta)
  • git describe ile commit'ten en yakın etiketi bulma ve build numarası üretme
  • GPG veya SSH imzalı commit/etiket (git tag -s, commit.gpgsign) ve doğrulama
  • Conventional Commits'ten otomatik CHANGELOG üretimi (standard-version, semantic-release)
  • Yanlış etiketi silme ve yeniden oluşturma (git tag -d, git push --delete) ile ekibe etkisi
Günün hedefiKatılımcı gün sonunda Dallanma stratejisini ve hook ile CI otomasyonunu kurar; ekip sözleşmesi yazar.
Modül 1
Dallanma Stratejileri: Git Flow, GitHub Flow, Trunk-Based
  • Git Flow modeli: main, develop, feature, release ve hotfix dallarının rolleri ve ömürleri
  • GitHub Flow: tek ana dal, kısa ömürlü dal ve pull request ile sürekli dağıtım
  • Trunk-based development: küçük commit'ler, günlük entegrasyon ve feature flag kullanımı
  • Release dalı yönetimi, sürüm bakım dalları (release/1.x) ve hotfix'in ana dallara geri aktarımı
  • Takım büyüklüğü, dağıtım sıklığı ve ürün tipine göre strateji seçim kriterleri
  • Dal isimlendirme standartları (feature/, bugfix/, release/) ve dal koruma kurallarıyla zorunlu kılma
Modül 2
Git Hooks ve Otomatik Kalite Kontrolleri
  • client-side hook'lar: pre-commit, prepare-commit-msg, commit-msg, pre-push
  • .git/hooks dizini ve core.hooksPath ile hook'ların depoyla paylaşılması
  • pre-commit framework: .pre-commit-config.yaml, black, flake8, eslint ve trailing-whitespace kontrolleri
  • Husky ve lint-staged ile Node.js projelerinde commit öncesi lint ve test
  • commit-msg hook ile Conventional Commits doğrulaması (commitlint)
  • Sunucu tarafı hook'lar (pre-receive, update, post-receive) ve --no-verify kullanımının riskleri
Modül 3
GitHub Actions Temelleri: Workflow Anatomisi
  • .github/workflows/*.yml yapısı: name, on, jobs, runs-on, steps ve uses/run farkı
  • Tetikleyiciler: push, pull_request, workflow_dispatch, schedule (cron), release ve paths/branches filtreleri
  • GitHub-hosted runner'lar (ubuntu-latest, windows-latest, macos-latest) ve dakika/kota yönetimi
  • actions/checkout, actions/setup-node ve setup-python gibi hazır eylemlerin sürüm sabitlemesi
  • Job'lar arası needs bağımlılığı, if koşulları ve ifade bağlamları (github, env, secrets, matrix)
  • Matrix stratejisi ile birden fazla işletim sistemi ve çalışma zamanı sürümünde test
Modül 4
Takım İçi Git Pratikleri ve Çalışma Sözleşmesi
  • Commit mesajı standardı, atomik commit ilkesi ve tek amaçlı PR yaklaşımı
  • Takım Git sözleşmesi: dal adlandırma, merge/rebase politikası, kimin ne zaman force push yapabileceği
  • Çakışmayı azaltan pratikler: sık entegrasyon, küçük dosyalar, format kuralları (.editorconfig, prettier)
  • Monorepo ve çoklu depo düzeninde sahiplik, CODEOWNERS ve sürüm yönetimi
  • Kod incelemesi etiği ve gözden geçirme süresi hedefleri; PR boyutu sınırı
  • Yeni üyenin ilk gün onboarding'i: erişim, hook kurulumu ve katkı kılavuzu

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Git Mimarisi

Git'in snapshot modelini ve üç alanlı çalışma düzenini açıklayabilirsiniz.

🎯
Günlük Commit Akışı

Değişiklikleri doğru kapsamda staging'e alıp okunabilir commit'ler üretirsiniz.

🔧
Dallanma ve Merge

Dalları açıp birleştirir, çakışmaları kontrollü biçimde çözersiniz.

🧩
Uzak Depo Çalışması

fetch, pull ve push akışını yönetip yerel ve uzak depoyu tutarlı tutarsınız.

📦
Git İç Yapısı

Commit, tree ve blob nesnelerini doğrudan inceleyerek Git'in iç işleyişini kavrarsınız.

🚀
Sürüm Etiketleme

SemVer etiketleri ve imzalı sürümlerle izlenebilir sürüm yayını yaparsınız.

🔒
Hook Otomasyonu

Commit ve push öncesi otomatik lint, test ve mesaj denetimi kurarsınız.

📊
Actions Temelleri

Push ve PR ile tetiklenen matrix destekli CI workflow'ları yazarsınız.

Kimler İçin Uygundur?

  • Yazılım tasarımı ve geliştirme dersi alan öğrenciler
  • genç geliştiriciler
  • test uzmanları
  • projelerinde sürüm kontrolü sistematik uygulamak isteyen ekipler için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Yazılım tasarımı ve geliştirme dersi alan öğrenciler, genç geliştiriciler, test uzmanları ve projelerinde sürüm kontrolü sistematik uygulamak isteyen ekipler için uygundur.
Eğitim yalnızca Git mi anlatıyor?
Git ağırlıklıdır; merkezi sistemlerle (SVN) karşılaştırma yapılarak kavramlar genel sürüm kontrol çerçevesinde verilir.
Nesne modeli neden anlatılıyor?
Commit, tree ve blob yapısını bilmek rebase ve reset gibi komutları anlamayı kolaylaştırır.
CI entegrasyonu uygulamalı mı?
Evet. Push ile tetiklenen basit bir test hattı kurulur ve dal korumasıyla ilişkilendirilir.
Eğitim sonunda hangi belge verilir?
Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. Software Design and Development: Version Control System Eğit Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre3 gün
SeviyeTemel Seviye
FormatOnline / Yüz Yüze / Hibrit
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

Sürüm Kontrolü ve İşbirliğiGitHub Yönetimi Temelleri Eğitimi
Yazılım Geliştirme Eğitimleri

GitHub Yönetimi Temelleri Eğitimi

2 günTemelOnline / Yüz Yüze / Hibrit

GitHub yönetimi temelleri: organizasyon, takım ve roller, branch protection, CODEOWNERS, Dependabot, secret scanning, token politikası ve faturalama yönetimi.

Detayları Gör →
Sürüm Kontrolü ve İşbirliğiGitlab ve Gitlab CI Eğitimi
Yazılım Geliştirme Eğitimleri

Gitlab ve Gitlab CI Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

GitLab ve GitLab CI eğitimi: merge request, protected branch, .gitlab-ci.yml, runner, artifact, cache, registry, review app ve güvenlik taramaları uygulamalı.

Detayları Gör →
Sürüm Kontrolü ve İşbirliğiIntroducing GIT Eğitimi
Yazılım Geliştirme Eğitimleri

Introducing GIT Eğitimi

2 günBaşlangıçOnline / Yüz Yüze / Hibrit

Introducing Git: sürüm kontrol kavramları, commit akışı, dallanma, merge, geri alma ve GitHub'a push adımlarını başlangıç seviyesinde uygulamalı öğrenin.

Detayları Gör →
Sürüm Kontrolü ve İşbirliğiIntroduction to Git Eğitimi
Yazılım Geliştirme Eğitimleri

Introduction to Git Eğitimi

2 günBaşlangıçOnline / Yüz Yüze / Hibrit

Introduction to Git: snapshot veri modeli, add/commit, branch/merge, geri alma, etiket, uzak depo ve grafik araçlarla Git'i başlangıç seviyesinde öğrenin.

Detayları Gör →
Sürüm Kontrolü ve İşbirliğiIntroduction to GitHub for Developers (TTDV7551) Eğitimi
Yazılım Geliştirme Eğitimleri

Introduction to GitHub for Developers (TTDV7551) Eğitimi

2 günTemelOnline / Yüz Yüze / Hibrit

TTDV7551 Introduction to GitHub for Developers: Git akışı, fork, pull request, kod inceleme, Issues, Actions, Dependabot, code scanning ve Copilot.

Detayları Gör →
+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn