Git & GitHub Kursu
Git ve GitHub öğren: commit'ler, branch'ler ve merge, pull request'ler, rebase, merge conflict'ler, stash ve pratik bir ekip iş akışı.
2 kategoride 11 ders
Git Temelleri
Git Fundamentals
Git nedir, GitHub'dan nasıl farklıdır, ve working tree/staging area/repository zihinsel modeli -- git init, status, add, commit, diff ve log ile. Git & GitHub kursunun ve Git Fundamentals kategorisinin 1.'si.
Working With Commits
İyi commit mesajları yazmak, git log/git show ile geçmişte gezinmek, git commit -am, ve git commit --amend'in var olan bir commit'i yerinde değiştirmek yerine YENİ bir commit oluşturduğunu anlamak. HEAD ve HEAD~1/HEAD~2 referansları.
Undoing Changes
git restore ile working tree değişikliklerini geri almak, git reset'in soft/mixed/hard modları arasındaki fark, ve git revert ile paylaşılan commit'leri güvenle geri almak. HEAD, staging area ve working tree arasındaki ilişki, ve git reset --hard'ın veri kaybı riski.
Branches & Merging
Branch oluşturmak/silmek/yeniden adlandırmak, git switch ile branch değiştirmek, git merge ile fast-forward ve merge commit'in farkı, merge conflict'lere giriş, ve gerçekçi bir Spring Boot feature branch workflow'u. git switch'in git checkout'a neden tercih edildiği.
GitHub & Remotes
Remote nedir, git clone/push/fetch/pull nasıl çalışır, fetch'in pull'dan farkı (fetch: entegre etmeden indir, pull: fetch + entegre), tracking branch'ler ve git push -u, ve yerel/remote branch'leri senkronize etmek.
Pull Requests
Pull Request nedir, gerçekçi bir feature branch workflow'u üzerinden nasıl oluşturulur/incelenir/onaylanır, merge vs squash-and-merge farkı, merge sonrası branch'leri silmek, ve branch protection rules.
İleri Git
Rebase & Squash
Rebase nedir, merge'den farkı, git rebase -i ile commit'leri squash/reorder/reword etmek, rebase conflict'lerini çözmek, paylaşılan geçmişi yeniden yazmanın tehlikesi, ve git push --force ile --force-with-lease arasındaki fark.
Merge Conflicts
Bir merge conflict'i tam olarak nedir, conflict marker'ları (<<<<<<<, =======, >>>>>>>) nasıl okunur, gerçek Java kod örnekleriyle nasıl çözülür, merge ve rebase sırasında aynı mekanik, ve git merge --abort/git rebase --abort ile güvenli iptal.
Stash
git stash ile commit edilmemiş değişiklikleri bir kenara kaydetmek, apply vs pop farkı, çoklu ve isimlendirilmiş stash'ler, git stash drop/clear, ve takip edilmeyen dosyaları stash'lemek. Gerçekçi bir "işi yarıda bırakıp başka göreve geçmek" senaryosu.
Advanced Git & Best Practices
git cherry-pick, git reflog (özellikle kayıp commit'leri kurtarma mekanizması olarak), git blame, alias'lar, iyi branch/commit konvansiyonları, ve merge/rebase/squash/revert'i özetleyen bir karşılaştırma. Bir geliştirme takımı için Git en iyi pratikleri.
Practical Git & GitHub Workflow
Kursun tamamında öğretilen her şeyi tek, gerçekçi bir uçtan uca Spring Boot senaryosunda birleştiren kapanış dersi: clone, feature branch, commit/amend, push, Pull Request, inceleme geri bildirimi, main üzerine rebase, conflict çözümü, force-with-lease, ve squash and merge.