First steps to learn git.
Git & GitHub İleri Seviye Akış
Çok Sayfalı Uygulamalarda Çakışmalar, Geri Almalar ve Gelişmiş Komutlar
1. Profesyonel Proje Başlangıcı Kurulum
Projeye sadece HTML dosyalarını atıp geçmiyoruz. Gereksiz dosyaların (örneğin IDE ayarları, Mac’teki .DS_Store dosyaları) GitHub’a gitmesini engellemek için bir .gitignore dosyası oluşturuyoruz.
touch .gitignore# İçine gereksiz klasör/dosya isimlerini yazarsın. Sonra ilk commiti atalım:
git add .git commit -m “feat: Semantic HTML yapısı ve temel navigasyon eklendi”
2. İşi Yarım Bırakmak Zorunda Kalmak Stash
Senaryo: Çoklu sayfa yapısındaki <nav> etiketlerindeki gizlenme sorununu çözüyorsun. Kodlar henüz çalışmıyor ama aniden ana sayfadaki (index.html) bir yazım hatasını düzeltmen gerekti. Çalışmayan kodu commit’leyemezsin!
git stash# Şimdi ana sayfadaki hatayı düzelt ve commit et…
git commit -am “fix: Ana sayfadaki yazım hatası düzeltildi”# Çekmecedeki yarım kalan navigasyon işini geri al
git stash pop
3. Kabus Senaryosu: Çakışma Çözümü Merge Conflict
Senaryo: Sen fix-nav dalında navigasyonu düzeltirken, bir takım arkadaşın (veya sen başka bir bilgisayarda) ana dalda (main) aynı satırdaki HTML kodunu değiştirdi. Bu iki dalı birleştirirken “Merge Conflict” oluşur.
<<<<<<< HEAD işaretleri belirecektir.
git checkout maingit merge fix-navCONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.
Nasıl Çözülür? Kod editöründe (örn: VS Code) index.html dosyasını aç. Doğru kodu manuel olarak seçip o garip işaretleri sil. Sonra:
git add index.htmlgit commit -m “merge: Navigasyon düzeltmesi ile ana dal çakışmaları giderildi”
4. Neler Oldu Bitti? Log & Diff
Proje büyüdükçe kim, ne zaman, hangi dosyayı bozdu bulmak gerekir.
git log –oneline –graph# Yaptığın son değişiklik ile bir önceki commit arasındaki farkları (eklenen/silinen satırları) gör
git diff
5. Geri Vites Seçenekleri Revert & Reset
Bazen attığın commit’in projeyi tamamen bozduğunu fark edersin. İşleri geri almanın iki yolu vardır:
reset --hard komutu tehlikelidir. Kaydedilmemiş ve o commit’ten sonraki tüm işleri acımasızca siler. GitHub’a gönderilmiş (push edilmiş) commitlerde reset kullanmak yerine revert tercih edilmelidir.
# Kötü commit’i silmez, tam tersi bir işlem yaparak hatayı düzelten YENİ bir commit atar.
git revert <commit-kodu-ornek: a1b2c3d># SEÇENEK 2: Yıkıcı Yol (Reset)
# Projeyi tam olarak bir önceki commit’in olduğu saniyeye geri döndürür. Sonraki her şeyi çöpe atar.
git reset --hard HEAD~1

Bir Cevap Yazın