Bu makalede Git'in ne olduğunu ve neden kullanıldığını öğrenecek, GitHub'da ilk repository'nizi oluşturacak ve çalışma ortamınızı ayarlayacaksınız. Git'i bilerek IDE'nin grafik arayüzü üzerinden ele alıyoruz. Böylece başlangıçta süreç daha anlaşılır ve rahat oluyor; onlarca komutu aklınızda tutmanız gerekmiyor.

Örnekler ve arayüz görüntüleri JetBrains IDE'lerine ait; 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şiklik gönderme kurallarına uyun.

Bu yaklaşımın bir nedeni daha var. Claude Code, arka planda Git işlemlerinin aynısını yapar; yalnızca bunları terminal komutlarıyla gerçekleştirir. Commit oluşturmayı, branch açmayı ya da değişiklikleri göndermeyi önerdiğinde, bunun arkasında sıradan Git komutları vardır. IDE düğmelerinin arkasında ne olduğunu anladığınızda Claude Code'un önerilerini de anlarsınız; böylece bunları bilinçli biçimde inceleyip onaylayabilirsiniz.

Sürüm kontrolü neden gerekli?

Bir projede çalışmaya başladığınızda en önemli şeyin kodun çalışması olduğu düşünülebilir. Ama çok geçmeden kodun, istikrarlı çalıştığından daha sık değiştiği ortaya çıkar. Bir bug'ı düzeltir, yeni bir özellik eklersiniz; sonra fikrinizi değiştirir, geri alır ve yeniden eklersiniz.

Kendi projeniz üzerinde çalıştığınızı düşünün. Deneme yapma zamanı gelene kadar her şey yolunda gider. Bir şeyi değiştirmek istersiniz ama çalışan sürümü bozmaktan çekinirsiniz. Ne yaparsınız? Elbette projeyi kopyalarsınız. Sonunda diskinizde şu şaheserler belirir:

MyProject/
├── main.py
├── main_backup.py
├── main_final.py
├── main_final2.py
├── main_really_final.py
├── main_really1_really_final2.py

Tanıdık geldi mi? Şimdi projeye bir arkadaşınızın daha katıldığını düşünün. O da dosyaları kopyalamayı seviyor, ama kendi yöntemince. En güncel ve çalışan sürümün hangisi olduğunu nasıl anlayacaksınız? Kimin neyi değiştirdiğini nasıl bulacaksınız? Deneme işe yaramazsa her şeyi nasıl geri alacaksınız?

Kaydedilmiş bir geçmiş olmayınca dosya kopyalarını elle incelemek zorunda kalırsınız:

  • çalışan kodu kaybetmek ya da karıştırmak kolaydır;
  • kaydedilmiş bir sürümü bulup geri yüklemek için ortak bir yöntem yoktur;
  • iki ya da üç kişinin birlikte çalışması zorlaşır;
  • kaos ve deneme yapma korkusu ortaya çıkar.
"Sürüm kontrolü neden gerekli?" bölümünün görseli

Git gibi sürüm kontrol sistemleri tam da bu sorunları çözer.

Video - terminalde Git'in temelleri

Bu video, terminal üzerinden Git kullanımı için sağlam bir temel sunuyor. IDE düğmelerinin arkasında işleyen süreçleri anlamanıza yardımcı oluyor.

Videodaki örnekler Java ile verilmiş, ancak temel Git işlemleri tüm dillerde aynıdır.

Git'in temelleri videosunu aç

Git nedir? Temel kavramlar

Git, bir sürüm kontrol sistemidir; geliştirme sırasında koddaki değişiklikleri takip etmek için kullanılır. Dosyaların farklı sürümlerini saklamanıza ve ortak bir projede birden fazla kişinin çalışmasını koordine etmenize olanak tanır.

Repository (ya da kısaca "repo"), projedeki tüm geçmişin, yani bütün değişikliklerin ve dosya sürümlerinin saklandığı yerdir.

Commit, projenin Git tarafından izlenen içeriğinin; mesajı, yazar bilgileri ve üst commit'lere bağlantılarıyla birlikte kaydedilmiş anlık görüntüsüdür. Commit edilmemiş ve yok sayılan dosyalar bu görüntüye dahil değildir. Geçmiş sayesinde daha önce kaydettiğiniz bir sürümü bulup geri yükleyebilirsiniz.

Geçmişteki ardışık anlık görüntülerABCD
Geçmişteki ardışık anlık görüntüler

Her commit bir proje anlık görüntüsüdür. Bir öncekinin ardından gelir ve birlikte sıralı bir değişiklik geçmişi oluştururlar.

Branch, bir geliştirme çizgisindeki mevcut commit'i gösteren addır. Örneklerde ana branch'in adı main; sizin repository'nizde adı farklı olabilir. Bu, ayarlara ve repository'nin nasıl oluşturulduğuna bağlıdır.

Üst çizgi main, alt çizgi develop branch'ini gösterir. Merge işleminden sonra main, iki üst commit'i E ve D olan M'yi gösterir.ABEMCD
Üst çizgi main, alt çizgi develop branch'ini gösterir. Merge işleminden sonra main, iki üst commit'i E ve D olan M'yi gösterir.

Paralel geliştirme için ana branch main'den develop branch'i ayrılır. İş tamamlandığında develop branch'indeki değişiklikler yeniden main ile birleştirilir.

Temel Git komutları - arka planda neler oluyor?

Aşağıda terminal üzerinden Git kullanırken başvuracağınız temel komutlar yer alıyor. Biz IDE'nin grafik arayüzünü kullanacağız, ancak işlemlerin temelinde hangi komutların olduğunu bilmek faydalı: Git her düğmenin arkasında bu komutları çalıştırıyor; Claude Code da repository'nizde çalışırken aynısını yapıyor. Bunları arka planda olup bitenler gibi düşünebilirsiniz.

KomutNe yapar?
git initgeçerli klasörde yeni bir Git repository'si başlatır
git clonerepository'yi URL üzerinden yeni bir klasöre kopyalar
git statushangi dosyaların değiştirildiğini ve stage edildiğini, hangilerini ise Git'in henüz izlemediğini gösterir
git adddosyaları sonraki commit için index'e (staging alanına) ekler
git commitstage edilmiş değişiklikleri geçmişte yeni bir anlık görüntü olarak kaydeder
git pushcommit'leri yerel repository'den uzak repository'ye gönderir
git pulldeğişiklikleri alır ve ayarlara göre geçerli branch ile birleştirir
git fetchdeğişiklikleri sunucudan indirir, ancak henüz branch'inizle birleştirmez
git branchbranch'leri listeler, oluşturur veya siler
git checkout / git switchswitch branch değiştirir; checkout ayrıca belirli bir commit'e geçebilir ve dosyaları geri yükleyebilir
git mergebelirtilen branch'teki değişiklikleri geçerli branch ile birleştirir
git logcommit geçmişini gösterir
git diffflag olmadan çalışma dosyalarını index ile karşılaştırır; stage edilmiş değişiklikler ayrıca incelenir
git restoreseçilen dosyaları geri yükler; kaynak belirtilmezse çalışma dosyaları son commit'ten değil, index'ten alınır
git resetindex'i veya geçerli branch'in konumunu değiştirir; sonuç komutun biçimine ve moduna bağlıdır
git stashtamamlanmamış değişiklikleri daha sonra geri dönmek üzere geçici olarak saklar
git remote -vprojenin bağlı olduğu uzak repository'leri gösterir
git configGit ayarları; örneğin commit yazarının adı ve e-posta adresi
"Temel Git komutları - arka planda neler oluyor?" bölümünün görseli

Tüm komut listesini ezberlemeniz gerekmiyor. Başlangıçta IDE ve ajan işlemlerinin Git komutlarına dayandığını bilmeniz yeterli; arayüzdeki tek bir eylem birkaç komut çalıştırabilir. Örneğin Commit düğmesi git commit komutunu, Push düğmesi ise git push komutunu kullanır.

  • Çalışma dosyaları
  • git add → index
  • git commit → geçmiş
  • git push → sunucu

Şema, değişikliklerin gönderilme yönünü gösteriyor: add ile içeriği hazırlarsınız, commit ile yerel olarak kaydedersiniz ve commit'leri push ile gönderirsiniz. Ters yöndeki pull ise uzak commit'leri alır ve ayarlara göre geçerli branch ile birleştirir.

Claude Code ile bağlantısı

Claude Code'un sizin için yürüttüğü süreç tam olarak bu. Commit oluşturup değişiklikleri göndereceğini söylediğinde, arka planda git add, git commit ve git push çalışır. Sonucu aynı IDE penceresinde görüp inceleyebilirsiniz.

Kodun dört durumu

Sürüm kontrolü kullanırken kodunuz kavramsal olarak dört durumdan geçer:

1. Working Directory (çalışma dizini). Bilgisayarınızdaki, şu anda düzenlemekte olduğunuz güncel proje dosyaları.

2. Staging Area (hazırlama alanı). Sonraki commit'e girecek şekilde hazırlanmış içerik. JetBrains IDE'lerinde değişiklik listeleriyle çalışabilir ya da ayrı bir staging modunu açabilirsiniz. Normal Commit penceresindeki onay kutuları commit'e girecek içeriği seçer, ancak içeriğin Git index'inde olduğu anlamına gelmez.

3. Local Repository (yerel repository). Bilgisayarınızdaki kişisel kod geçmişi kopyanızdır. İnternet bağlantısı olmasa bile burada commit, branch ve merge işlemleri yapabilirsiniz.

4. Remote Repository (uzak repository). GitHub, GitLab veya Bitbucket gibi hizmetlerde bulunan merkezi kod deposudur. Kodu güvenli biçimde saklar ve ekip çalışmasının temelini oluşturur.

Claude Code ile bağlantısı

Claude Code yeni bir dosyayı izlemeye almak için onayınızı istediğinde, dosyayı çalışma dizininden staging alanına taşır; bu işlem git add komutudur. Böylece dosyanın ekleme anındaki içeriği hazırlanır; sonraki düzenlemeleri yeniden stage etmeniz gerekir. Dosyanın eklenmesi gerekmiyorsa (örneğin geçici bir dosyaysa) isteği reddedebilirsiniz.

Git ve GitHub arasındaki fark nedir?

Bu iki kavramı birbirinden ayırmak önemli. Git, bilgisayarınızda yerel olarak çalışan (internet olmasa bile) ve dosya sürümlerini takip eden bir programdır. GitHub ise Git repository'lerinizin uzak kopyalarını saklayan bir bulut hizmetidir (web sitesi).

GitHub'da repository oluşturabilir, değişiklikleri takip edebilir ve başkalarıyla birlikte kod üzerinde çalışabilirsiniz. Günümüzde bir geliştiricinin GitHub profili, işverenlere gösterilebilecek portföyünün önemli bir parçasıdır.

GitHub'da ilk repository'nizi oluşturun

Yeni repository oluşturma

1. adım. https://github.com adresine gidip kayıt olun.

2. adım. Yeni bir repository oluşturmak için New repository düğmesine tıklayın.

New repository düğmesi

3. adım. Repository ayarlarını yapın:

  1. repository adı - anlamlı bir ad seçin;
  2. Public veya Private - görünürlüğü bilinçli seçin. Public herkese açıktır; Private erişimi sınırlar. Yayınlamayı düşünmediğiniz kişisel bir alıştırma için Private seçebilirsiniz.
  3. Add a README file - yeni ve boş bir proje için README eklemek kullanışlıdır. Mevcut yerel geçmişinizi gönderecekseniz, birbirinden bağımsız iki başlangıç geçmişi oluşmaması için README içermeyen boş bir uzak repository oluşturun.
  4. Add .gitignore - projenizin teknolojisine uygun bir şablon seçin. Açılır listede yaygın diller için hazır şablonlar bulunur. Bu önemli: build işlemleri ve package manager'lar, repository'yi doldurmaması gereken pek çok geçici dosya ve cache oluşturur. Şablon, Git'in bunları yok saymasına yardımcı olur;
  5. Choose a license - bu adımı atlayabilirsiniz;
  6. Create repository düğmesine tıklayın.
"GitHub'da ilk repository'nizi oluşturun" bölümünün görseli

4. adım. Tamamdır, ilk uzak repository'niz oluşturuldu.

GitHub'da oluşturulan repository

Git'i kurma ve ayarlama

Bundan sonraki ekran görüntülerinde IntelliJ IDEA arayüzü gösteriliyor. Diğer JetBrains IDE'lerinde benzer işlemler bulunur, ancak düğmelerin konumu ve menü adları sürüme göre değişebilir. Eylemin adına bakın; IDE'nin eylem aramasından bulabilirsiniz.

Git ile çalışmak için önce onu kurmanız gerekir. JetBrains IDE kullanıyorsanız, IDE sisteminizde Git'i bulamadığında büyük olasılıkla kurmayı kendisi önerir. En kolayı bu öneriyi kabul etmek.

Geçerli projeyi File | Close Project üzerinden kapatın. Başlangıç ekranında (Welcome Screen) Clone Repository düğmesine tıklayın (bazı sürümlerde düğmenin adı Get from VCS olabilir).

IntelliJ IDEA başlangıç ekranı

Git'i elle kurmak isterseniz resmi sitesinden indirin: https://git-scm.com/downloads.

Önemli bir ayrıntı

İlk commit için Git'in yazar adı ve e-posta adresine ihtiyacı vardır. Bu, commit'in imzasıdır; hesaba giriş bilgisi değildir. Commit'leri GitHub profiliyle eşleştirmek için hesap ayarlarınızdaki doğrulanmış adresi kullanın; kişisel e-posta adresinizi herkese açmak istemiyorsanız GitHub'ın verdiği noreply adresini seçin.

GitHub, commit'leri e-posta adresine göre profilinizle eşleştirir. E-posta adreslerinin eşleşmesi, katkı grafiğinizde kaydın görüneceğini tek başına garanti etmez; bunun için ek koşullar vardır.

Claude Code'un Git ve GitHub ile doğrudan çalışması için neler kurmalı?

Yerel commit'ler ve branch'ler için Git'in kurulu olması yeterlidir; GitHub'da oturum açmanız gerekmez. Uzak repository işlemleri için erişim ayarlayın. GitHub CLI (gh), PR'ler ve diğer GitHub özellikleri için ek bir araçtır; Git'in zorunlu bir parçası değildir.

1. Git. Yerel geçmişle çalışmak için gereklidir. IDE üzerinden ya da Git'in resmi sitesinden kurabilirsiniz.

2. GitHub CLI (gh), GitHub'ın resmi komut satırı aracıdır. Ne işe yarar? Claude Code bu araçla tarayıcıya geçmeden terminalden pull request oluşturabilir, issue'ları okuyabilir ve kontrollerin durumunu görebilir. Kurulum yöntemi işletim sisteminize bağlıdır.

İşletim sisteminize yönelik yönergeler GitHub CLI'nin resmi sayfasında yer alıyor. Aracı kurun ve gh --version komutuyla erişilebilir olduğunu kontrol edin.

GitHub CLI'yi seçtiyseniz erişim kurulumunu başlatıp soruları yanıtlayın. GitHub.com için HTTPS'i ve tarayıcı üzerinden oturum açmayı seçebilirsiniz:

# terminalden GitHub hesabında oturum açma
gh auth login

Claude Code, geçmiş için git, GitHub özellikleri için ise gh kullanabilir. Bu GitHub çalışma yöntemini seçerseniz gh'yi kurmanız ve gh auth login komutunu çalıştırmanız gerekir. PR oluşturma ve commit gönderme, gönderilecekleri inceledikten sonra sizin talimatınızla yapılır.

main ve master

Repository'lerde main ve master adlarına rastlayabilirsiniz. GitHub genellikle main adını önerir; Git ise yerel başlatma sırasında kendi sürümünü ve init.defaultBranch ayarını dikkate alır. Projenizde kullanılan gerçek branch adını kontrol edin.

Her iki ad da sıradan bir branch'i belirtir. Örneklerdeki komutları repository'nizdeki gerçek branch adlarına göre uyarlayın.

Claude Code ile birlikte nasıl çalışır?

Git'in temel kavramlarını artık bildiğiniz için Claude Code'un yaptığı işlemleri anlamak daha kolay. İşte sizin yerinize yaptığı ve dikkat etmeniz gerekenler:

  • IDE düğmelerinin arkasındaki komutları, örneğin git add, git commit ve git push işlemlerini sizin yerinize çalıştırır;
  • bir dosyayı izlemeye almayı önerir (git add) - dosyanın geçmişte yer alıp almayacağına siz karar verirsiniz;
  • hazır bir mesajla commit önerir - neleri kaydedeceğini okuyup onaylar ya da düzenlersiniz;
  • GitHub CLI üzerinden pull request (PR - bir branch'i ana branch ile birleştirme önerisi) oluşturup yorum yapabilir ve kontrollerin durumunu görebilir.
Claude Code ile bağlantısı

Onaylamadan önce hangi dosya ve değişikliklerin commit'e gireceğine bakın. Claude Code bunları IDE'deki gibi diff olarak gösterir. Kontrol noktası burası: proje geçmişine ve sunucuya tam olarak ne gideceğini bilirsiniz.

Sonraki makale: Git ile günlük çalışma