Yapay zekâ ile proje geliştirirken başıma en çok gelen şey şu oldu: her şey güzel gidiyor, Claude bir özellik ekliyor, ardından bir düzeltme daha istiyorum ve birden çalışan kod çalışmaz hâle geliyor. “Bir önceki hâline dön” diyorum ama yapay zekâ o hâli tam olarak hatırlamıyor. Bu sorunu kökten çözen alışkanlık çok basit: projeye başlamadan önce GitHub’da bir repo açmak ve her adımı oraya kaydetmek. Bu yazıda bunun neden bu kadar önemli olduğunu, nasıl yaptığımı ve kodlamayı nasıl kolaylaştırdığını yeni başlayanlar için anlatıyorum.
Bir benzetme: oyundaki kayıt noktaları
Bir bilgisayar oyunu oynadığınızı düşünün. Zor bir bölümden önce oyunu kaydediyorsunuz. Kaybederseniz baştan başlamıyorsunuz; son kayıt noktasından devam ediyorsunuz. Git ve GitHub, kodunuz için tam olarak bunu yapıyor. Her commit bir kayıt noktası. Yapay zekâ bir şeyi bozduğunda paniğe gerek yok: bir önceki kayda dönüyorsunuz.
Yapay zekâyla çalışırken bu daha da önemli, çünkü yapay zekâ çok hızlı ve çok fazla değişiklik yapıyor. Tek bir istekte on dosyaya dokunabiliyor. Kayıt noktanız yoksa neyin değiştiğini takip etmek neredeyse imkânsız.
Önce birkaç kavram (kısa, söz veriyorum)
- Git: Bilgisayarınızda çalışan, dosyalarınızdaki her değişikliği kaydeden sürüm kontrol programı.
- GitHub: Git kayıtlarınızı internette saklayan, paylaşmanızı ve başkalarıyla (ya da yapay zekâyla) birlikte çalışmanızı sağlayan site.
- Repo (repository, depo): Bir projenin bütün dosyalarının ve bütün geçmişinin durduğu klasör.
- Commit: “Şu an her şey böyle” diye aldığınız kayıt. Yanına kısa bir not yazıyorsunuz: “İletişim formu eklendi” gibi.
- Push: Bilgisayarınızdaki kayıtları GitHub’a göndermek.
- Branch (dal): Ana koda dokunmadan deneme yaptığınız paralel kopya. Deneme tutarsa ana dala birleştiriyorsunuz, tutmazsa siliyorsunuz.
- Pull Request (PR): “Bu dalı ana koda eklemek istiyorum” talebi. Değişiklikleri satır satır gösterir; birleştirmeden önce kontrol etmenizi sağlar.
Benim kuralım: önce repo, sonra prompt
Kendi projelerimde bir kural koydum ve adına “repo-önce kuralı” diyorum: bir proje GitHub’da repo olarak yoksa, o proje yok demektir. Yapay zekâya ilk prompt’u yazmadan önce repoyu açıyorum. Kod nerede yazılırsa yazılsın, sunucuya kurulmadan önce repoya giriyor.
Örneğin sosyal medya yorumlarımı yönettiğim Odoo modülü Social Desk’i yazarken, modül sunucuda çalışmaya başladıktan sonra bile “repoya commit’lenmedi” diye yapılacaklar listemde açık iş olarak kaldı. Çünkü sunucudaki kopya tek kopyaysa, sunucuyla birlikte kod da gidebilir. Derslerde kullandığım prompt’lar ve dosyalar da aynı mantıkla GitHub hesabımda duruyor.
GitHub repo, yapay zekâyla kodlamayı neden kolaylaştırır?
1. Bozulan her şey geri alınabilir
Yapay zekâ bir değişiklik yaptı ve site açılmıyor mu? Son çalışan commit’e dönüyorsunuz. Artık “her şeyi baştan anlatayım” diye uzun prompt’lar yazmıyorsunuz. Bu güven sayesinde yapay zekâdan daha cesur şeyler isteyebiliyorsunuz.
2. Yapay zekâ ne yaptığını size gösterir
Commit ve Pull Request ekranları, yapay zekânın hangi dosyada hangi satırı değiştirdiğini kırmızı ve yeşil satırlarla gösterir. “Ben sadece butonun rengini istemiştim, neden veritabanı dosyasına dokundu?” sorusunu yayına almadan önce sorabiliyorsunuz.
3. Yapay zekâ projeyi hatırlamak zorunda kalmaz
Sohbet uzadıkça yapay zekâ baştaki konuşmaları unutmaya başlar. Ama repo unutmaz. Claude Code gibi araçlar repoyu açıp dosyaları ve geçmişi kendisi okuyabiliyor. Yeni bir sohbet açtığınızda “repoya bak, kaldığımız yerden devam et” demeniz yetiyor. Claude Code’un web sürümü de çalışmaya başlarken repoyu GitHub’dan kendisi çekiyor; yani proje GitHub’da değilse bu araçların çoğu sizin projenizi göremiyor bile.
4. Talimatlarınız da repoda durur
Reponun içine yapay zekâ için bir talimat dosyası koyabilirsiniz. Claude Code için bu dosyanın adı CLAUDE.md. İçine “Bu proje WordPress eklentisi, kodu PHP 8 ile yaz, Türkçe yorum ekle, sunucuya dokunmadan önce bana sor” gibi kuralları yazıyorsunuz. Her yeni oturumda bu kurallar otomatik olarak okunuyor. Master prompt’unuzu her seferinde yapıştırmak zorunda kalmıyorsunuz.
5. Deneme yapmak bedava olur
“Bu sayfayı tamamen farklı bir tasarımla deneyelim” mi diyorsunuz? Yeni bir branch açıyorsunuz, yapay zekâ orada çalışıyor. Beğenmezseniz o dalı silip geçiyorsunuz; ana kodunuz hiç etkilenmiyor. İki farklı fikri yan yana bile deneyebilirsiniz.
6. Her yerden çalışırsınız ve bilgisayarınız bozulsa da kaybetmezsiniz
Evdeki bilgisayar, ofisteki bilgisayar, sunucu, buluttaki bir yapay zekâ oturumu: hepsi aynı repodan çalışıyor. Diskiniz bozulsa, laptopunuz çalınsa kodunuz GitHub’da duruyor. Bu, ayrı bir yedek planının yerini tutmaz ama kod için çok güçlü bir ilk katman.
7. Proje geçmişiniz bir günlüğe dönüşür
Altı ay sonra “bu ayarı neden böyle yapmıştık?” diye sorduğunuzda commit notları cevap veriyor. Yapay zekâ da bu geçmişi okuyup bir hatanın ne zaman başladığını bulabiliyor.
8. Proje paylaşılabilir hâle gelir
Videolarımın altında en sık gelen sorulardan biri “Abi GitHub’ın nerede?” oluyor. Repo açık (public) olduğunda izleyiciler, müşteriler ya da ekip arkadaşlarınız kodu indirip inceleyebiliyor. İsterseniz repoyu gizli (private) tutup sadece seçtiğiniz kişilere açabiliyorsunuz.
Adım adım: yapay zekâyla bir projeye nasıl başlıyorum?
- GitHub’da yeni bir repo açın. Adını projenin adı yapın, “Add a README file” kutusunu işaretleyin. Kod paylaşmayacaksanız Private seçin.
- Bir
.gitignoredosyası ekleyin. Şifrelerin durduğu.envdosyası,node_modulesgibi büyük klasörler ve yedek dosyaları bu listeye yazın ki yanlışlıkla GitHub’a gitmesin. GitHub repo açarken dile göre hazır şablon da sunuyor. - README’ye projenin amacını yazın. Üç-beş cümle yeter: proje ne yapıyor, hangi teknolojiyle yazılıyor, nasıl çalıştırılıyor. Bu dosyayı hem siz hem yapay zekâ okuyacak.
- Yapay zekâ için talimat dosyasını ekleyin (
CLAUDE.mdgibi): kodlama kuralları, yasaklar, “önce sor” dediğiniz işler. - Yapay zekâyı repoya bağlayın. Claude Code’u repo klasöründe açın ya da kullandığınız araçta GitHub bağlantısını yapın.
- Her özelliği küçük adımlara bölün. “Bütün siteyi yap” yerine “önce giriş sayfasını yap” deyin. Her adım çalıştığında commit atın.
- Büyük değişiklikleri branch’te ve Pull Request ile yaptırın. PR’daki değişiklikleri okuyun, deneyin, sonra birleştirin.
- Günü bitirirken push edin. Bilgisayarınızda kalan bir commit, GitHub’da olmayan bir commit’tir.
İyi bir haber: bu komutların hiçbirini ezberlemek zorunda değilsiniz. Claude Code’a “değişiklikleri anlamlı bir mesajla commit et ve push et” ya da “yeni bir branch aç ve bu özelliği orada yap” demeniz yeterli. Yine de ne yaptığını anlamak için yukarıdaki kavramları bilmeniz çok işinize yarar.
İyi bir commit mesajı nasıl yazılır?
“düzeltme”, “son hali”, “son son hali” gibi mesajlar altı ay sonra hiçbir şey anlatmaz. Kısa ve ne yaptığını söyleyen mesajlar yazın:
İletişim formuna telefon alanı eklendiMobilde menünün taşması düzeltildiÜrün listesine stok filtresi eklendi
Yapay zekâ commit attığında da mesajı okuyun. Mesaj yaptığı işi doğru anlatmıyorsa, büyük ihtimalle siz de ne yaptığını tam anlamamışsınızdır.
GitHub’ın size bedava verdiği ek araçlar
- Issues: Yapılacaklar listeniz. Her hata ya da fikir bir issue olur; yapay zekâya “3 numaralı issue’yu çöz” diyebilirsiniz.
- GitHub Actions: Her push’ta testleri otomatik çalıştıran sistem. Yapay zekânın yaptığı bir değişiklik bir şeyi bozduysa, siz fark etmeden önce kırmızı bir uyarı görürsünüz.
- Releases ve tag’ler: “Sürüm 1.0” gibi kalıcı işaretler. Bir eklenti ya da tema dağıtıyorsanız indirilebilir zip dosyasını buradan verebilirsiniz.
- Gizli bilgi taraması: GitHub, repoya yanlışlıkla gönderilen bazı API anahtarlarını ve şifreleri tespit edip sizi uyarabiliyor. Bu bir güvenlik ağı; tek önleminiz olmamalı.
Dikkat edilmesi gerekenler
- Şifreleri asla repoya koymayın. API anahtarları, veritabanı şifreleri ve
.envdosyaları repoya girmemeli. Bir kez push ettiyseniz silmek yetmez, geçmişte kalır; o şifreyi hemen değiştirin. - Yapay zekâya ana dalı ezme yetkisi vermeyin. “Force push” gibi geçmişi silen komutları sizin onayınız olmadan çalıştırmamasını talimat dosyasına yazın.
- Çalışmayan kodu birleştirmeyin. PR’ı onaylamadan önce kodu gerçekten deneyin. Yapay zekâ “tamamlandı” dediğinde bile.
- Büyük dosyaları repoya koymayın. Videolar, veritabanı yedekleri ve binlerce görsel repoyu şişirir. Bunlar için ayrı bir depolama kullanın.
- Public repo’da lisans seçin. Kodunuzun nasıl kullanılabileceğini belirtmek için bir LICENSE dosyası ekleyin.
Kısa kontrol listesi
- Repo ilk prompt’tan önce açıldı mı?
- README ve yapay zekâ talimat dosyası var mı?
.gitignoreşifreleri ve gereksiz dosyaları dışarıda tutuyor mu?- Her çalışan adımda commit atılıyor mu?
- Büyük değişiklikler branch ve PR ile mi yapılıyor?
- Gün sonunda her şey GitHub’a push edildi mi?
Kapanış
Yapay zekâ kodu yazmayı hızlandırıyor ama işi güvenli kılan şey GitHub. Repo, yapay zekânın hafızası, sizin geri alma düğmeniz ve projenizin günlüğü oluyor. Benim tavsiyem net: bir sonraki projenizde ilk prompt’u yazmadan önce repoyu açın. Farkı ilk “eyvah, her şey bozuldu” anında göreceksiniz. Yapay zekâyla adım adım proje geliştirmeyi Yapay Zekâ ile Proje Geliştirme Rehberi dersimde anlatıyorum; derslerde kullandığım dosyalar da GitHub hesabımda. Sorunuz varsa yazının altına yazın.




