Bu makalede her gün tekrarlanan temel çalışma akışını öğreneceksiniz: projenin bir kopyasını edinmek, değişiklikleri kaydetmek (commit), GitHub'a göndermek (push) ve gereksiz dosyaları .gitignore ile yok saymak. Claude Code bir repository üzerinde sizin yerinize çalışırken aynı akışı izler; bu yüzden bunu anlamak iki kat faydalıdır.
Örnekler ve arayüz görüntüleri JetBrains IDE'lerine aittir; eylemlerin adları ve konumları kullandığınız sürümde farklı olabilir. Alıştırmalar için ayrı bir eğitim repository'si kullanın. İş projesinde ise o projenin branch, commit ve değişiklikleri gönderme kurallarına uyun.
Projeyi klonlama
GitHub'da zaten bir repository'niz var; şimdi çalışmaya başlamak için bunun yerel bir kopyasını bilgisayarınıza almanız gerekiyor. Bu işleme klonlama denir.
1. adım. IDE'yi başlatın. Bir proje açıksa File | Close Project ile kapatın. Başlangıç ekranında (Welcome Screen) Clone Repository (veya Get from VCS) seçeneğini belirleyin.

2. adım. Açılan pencereye repository URL'sini yapıştırın. Başkasının repository'sini klonlarken bu yöntem kullanışlıdır; URL'yi GitHub'daki repository sayfasından kopyalayabilirsiniz.

Kendi repository'nizi klonluyorsanız GitHub hesabınıza doğrudan IDE'den Log in to GitHub seçeneğiyle giriş yapmak en kolayıdır. IDE, kimlik doğrulama için tarayıcıyı açar.

Açılan sayfada yeşil Authorize JetBrains düğmesine basın. Ardından repository'lerinizi doğrudan IDE'deki listeden seçebilirsiniz. İstediğiniz projeyi seçip Clone düğmesine basın.

3. adım. Projeye güvenip güvenmediğinizi belirleyin. Kendi tanıdık repository'niz için Trust Project'i seçebilirsiniz. Bilmediğiniz bir repository ise önce içeriğini ve çalıştırma talimatlarını inceleyin: güven verdiğinizde IDE proje eylemlerini çalıştırabilir.
4. adım. Projeyi açın. Windows'ta IDE, indekslemeyi hızlandırmak için antivirüs istisnaları önerebilir. Git'i öğrenmek için bunlar gerekli değildir; klonlama uğruna korumayı devre dışı bırakmayın.

Değişiklikleri kaydetme - commit
commit, projenin belirli bir andaki kaydedilmiş durumunun anlık görüntüsüdür. Bunu oyundaki kayıt noktası gibi düşünün: bir şey ters giderse her zaman o noktaya dönebilirsiniz. Her commit'in benzersiz bir kimliği ve değişiklikleri açıklayan bir mesajı vardır.
Commit geçmişinde her yeni commit bir öncekine dayanır ve projenin gelişimini gösteren bir kronoloji oluşturur.
1. adım. Değişiklik yapın. README.md dosyasını açıp projeyi açıklayan bir metin ekleyin. Dosyayı düzenlemeye başladığınızda IDE, proje panelindeki adını mavi renkle vurgular. Bu, dosyanın değiştiği ama değişikliklerin henüz Git'e kaydedilmediği anlamına gelir. Değişen satırların yanında renkli bir şerit görünür: eklenen satırlar yeşil, değiştirilenler mavi.

Commit sekmesini açıp değiştirilen dosyalara bakın. JetBrains'in normal modunda bunlar değişiklik listeleridir (changelists); ayrı Git staging modu ayarlardan açılır. Bu penceredeki onay kutularını terminalde hazırlanmış index ile karıştırmayın.

Burada neler var:
- Changes - Git'in zaten izlediği ve değiştirilmiş dosyalar (bizim örneğimizde
README.md); - Unversioned Files - Git'in proje klasöründe gördüğü ancak henüz izlemediği yeni dosyalar.
2. adım. Seçilen diff'i kontrol edin. Unversioned Files bölümündeki yeni dosyalar henüz izlenmiyor. Build çıktıları, cache ve kişisel ayarlar genellikle .gitignore ile hariç tutulur. Projenin ortak ayarları Git'te saklanabilir; .idea/ klasörünün tamamını yok saymadan önce projenin kurallarını kontrol edin.
3. adım. Commit oluşturun. docs: Describe the project in README gibi anlaşılır bir mesaj girin, seçili diff'i kontrol edin ve Commit'e basın. Commit öncesi kontroller açıksa sonuçlanmalarını bekleyin. Git Log'u açıp yeni commit'in istediğiniz dosyayı içerdiğini doğrulayın.

Claude Code commit oluşturmayı önerdiğinde, arka planda seçilen dosyalar ve mesajla git commit çalıştırılır. Dosya listesine göz atma alışkanlığı burada da işe yarar: Claude'un doğru dosyaları kaydetmek üzere olduğunu doğrulayın, commit mesajını okuyun ve onaylayın ya da düzeltin.
Değişiklikleri GitHub'a gönderme - push
Commit'leriniz şimdilik yalnızca bilgisayarınızda saklanıyor. Bunları ekibinizle paylaşmak veya güvenli bir yerde tutmak için GitHub'daki uzak repository'ye göndermeniz gerekir.
- Yerel commit'ler
- git push
- Uzak branch
Push, seçilen uzak branch'i commit'lerinizle günceller. Başkalarının çalışmalarını indirmez ve commit edilmemiş dosyaları göndermez.
1. adım. Push'a basın. Push düğmesi ana üst araç çubuğunda (Main Toolbar) bulunur ve sağa-yukarı bakan bir ok şeklindedir.

2. adım. Kontrol edip onaylayın. Gönderilmeye hazır tüm commit'leri içeren bir pencere açılır. Tam olarak istediğiniz şeyleri gönderdiğinizden emin olmak için son fırsatınız budur. Push'a basın.

Gönderim başarılı olursa IDE bir bildirim gösterir. Bildirimdeki repository'yi ve hedef branch'i kontrol edin; bu alıştırmada hedef origin/main. Bildirimin metni IDE sürümüne göre değişebilir.
3. adım. Sonucu GitHub'da kontrol edin. Tarayıcıda GitHub repository sayfasını açın; değişikliklerinizin ve dosyalarınızın orada göründüğünü doğrulayın.
Claude Code değişiklikleri sizin yerinize gönderebilir (git push). Sunucuya yalnızca commit'lere kaydedilmiş değişikliklerin gittiğini unutmayın. Bu nedenle commit aşamasında hangi değişikliklerin anlık görüntüye dahil olduğunu kontrol etmek, GitHub'da nelerin yer alacağını da kontrol etmenizi sağlar.
Git kontrol paneli
IDE'de ayrı bir Git araç penceresi ve üst çubukta hızlı eylemler bulunur. Burası sürüm kontrolü merkezinizdir. Başlıca düğmeler:

Commit(onay işareti) - değişiklikleri kaydetme panelini açar;Push(sağa-yukarı ok) - commit'leri GitHub'a gönderme penceresini açar;Branches- branch yönetimi widget'ı (sol üst köşede);Show Git Log- projenin tüm commit geçmişi, kişisel zaman makineniz.
Güncellemeleri alma
Update Project değişiklikleri alıp yerel branch'inizle birleştirir; IDE ayara bağlı olarak merge veya rebase kullanır. Güncellemeden önce tamamlanmamış çalışmanızı kaydedin ve seçili güncelleme yöntemini inceleyin.
Yeni bir göreve başlamadan önce dosyaların durumunu ve gereken branch'in güncel olup olmadığını kontrol edin. Başkalarının commit'leri geldiyse bunları alıp proje kurallarına göre birleştirin. Güncelleme sırasında çatışmaları çözmeniz gerekebilir; bu işlem gelecekte çatışma çıkmayacağını garanti etmez.
Gereksiz dosyaları yok sayma - .gitignore
Projede yardımcı dosyalar ya da build çıktıları oluşuyorsa ve bunların yanlışlıkla repository'ye girmesini istemiyorsanız, bunları yok sayma kurallarına ekleyin. Bunun için projenin kök dizininde .gitignore adlı özel bir dosya oluşturulur.
Genellikle neler yok sayılır, neden?
Hemen her teknoloji yığınının Git'te bulunmaması gereken dosyaları vardır; bunlar bilgisayarınıza özeldir ya da build sırasında yeniden üretilir:
- build klasörleri (örneğin
build/,dist/) - kolayca yeniden oluşturulabilen derleme çıktıları; - paket yöneticisi cache'i ve bağımlılıklar (örneğin
node_modules/) - yüzlerce megabayt yer kaplayabilir ve sisteminize özgüdür; - çalışma penceresinin durumu gibi kişisel IDE ayarları.
.idea/içinde ortak proje ayarları da bulunabilir; bu nedenle bu klasörün tamamını yalnızca proje kuralı bunu söylüyorsa yok sayın; - işletim sistemi dosyaları (
.DS_Store,Thumbs.db) - işletim sisteminin otomatik oluşturduğu yardımcı dosyalar.
Bir dosyayı yok sayma listesine elle ekleme:
1. adım. Diyelim ki taslak notlar içeren yerel bir notes.txt dosyası oluşturdunuz. Proje ağacında dosyaya sağ tıklayın.

2. adım. Git -> Add to .gitignore -> Add to .gitignore menüsünü izleyin. Bu seçenek seçilen dosyayı proje kökündeki .gitignore dosyasına ekler.

.gitignore dosyası henüz yoksa IDE oluşturmayı önerir; kabul edin.
3. adım. IDE dosya adını otomatik olarak .gitignore dosyasına ekler.

Kuralla eşleşen ve izlenmeyen bir dosya genellikle ekleme listesinden kaybolur; IDE'deki rengi temaya bağlıdır. Bu, dosyanın zorla eklenmesine karşı koruma sağlamaz ve daha önce kaydedilmiş dosyayı geçmişten silmez. Kural herkes için geçerli olacaksa .gitignore dosyasını da commit edin.
Dosya zaten izleniyorsa. .gitignore'a eklemek izlemeyi durdurmaz. git rm --cached dosya-yolu komutu çalışma kopyasını koruyarak dosyayı index'ten çıkarır; ardından bu değişiklik commit edilir. Önceki sürümler geçmişte kalır. Gizli bir bilgi söz konusuysa yalnızca yok saymakla yetinmeyin; önce erişimi iptal edin.
.gitignore kuralları
Dosyada Git'in yok sayması gereken dosya ve klasör adları için kalıplar belirtilir. Boş satırlar yok sayılır; yorumlar # karakteriyle başlar.
*- herhangi sayıda karakterin yerine geçer. Örneğin*.log,.loguzantılı tüm dosyaları yok sayar;- kalıbın sonundaki
/bir dizini belirtir. Örneğinbuild/,buildklasörünün tüm içeriğini yok sayar; - satırın başındaki
!kuralı tersine çevirir. Örneğin*.logkuralı varken!important.logsatırı bu dosyayı yok sayma kuralının dışında bırakır; dosya eklenince izlenmeye başlanır; - eğik çizgiler arasındaki
**, sıfır veya daha fazla iç içe klasörle eşleşir. Örneğinlogs/**/*.loghemlogs/a.loghem delogs/2026/09/a.logile eşleşir.
.gitignore dosyası örneği
# Build ve cache klasörleri
build/
dist/
node_modules/
# IDE'nin kişisel durumu (JetBrains)
.idea/workspace.xml
# İşletim sistemi dosyaları
.DS_Store
Thumbs.dbHazır şablonlar
Bu dosyaları sıfırdan yazmanız gerekmez; topluluk tarafından hazırlanmış ve denenmiş şablonlar var:
- farklı diller ve framework'ler için GitHub'ın
.gitignorekoleksiyonu: https://github.com/github/gitignore; - gitignore.io - teknolojilerinize uygun
.gitignoreüreten bir web hizmeti (dil, işletim sistemi ve IDE bilgilerini girmeniz yeterli).
Claude Code ile birlikte nasıl çalışır?
Claude Code bu günlük akışı sizin yerinize yürütebilir. Şunlara dikkat edin:
- Claude kendi başına commit oluşturup push yapabilir; siz commit'e nelerin girdiğini kontrol edip mesajı okursunuz;
- düzenli bir
.gitignoregereksiz dosyaları dışarıda tutmaya yardımcı olur, ancak commit'ten önce seçilen dosyaları yine de kontrol edin; - güncellemeden önce branch'in durumunu ve tamamlanmamış işleri kontrol edin; sonrasında birleştirme sonucuna bakın.
Commit veya push işlemini onaylamadan önce Claude Code'un gösterdiği diff'e bakın. Bu, Commit penceresindeki onay kutularını kontrol etmekle aynı şeydir; tek fark, değişiklikleri Claude'un başlatmasıdır. Böylece geçmişe ve sunucuya yalnızca gerçekten onayladığınız değişiklikler gider.
Önceki makale: Git ve GitHub'a giriş · Sonraki makale: Git'te branch'ler ve birleştirme
GO TO FULL VERSION