Neler yeni

Yazılım Forum

Tüm özelliklerimize erişmek için şimdi bize katılın. Kayıt olduktan ve giriş yaptıktan sonra konu oluşturabilecek, mevcut konulara yanıt gönderebilecek, itibar kazanabilecek, özel mesajlaşmaya erişebilecek ve çok daha fazlasını yapabileceksiniz! Bu hizmetlerimiz ise tamamen ücretsiz ve kurallara uyulduğu sürece sınırsızdır, o zaman ne bekliyorsunuz? Hadi, sizde aramıza katılın!

Git Kullanımına Başlangıç Rehberi: Temel Komutlar ve Kavramlar

Giriş: Sürüm Kontrolü Nedir ve Neden Git Kullanmalıyız?

Modern yazılım geliştirme süreçlerinde, projeler üzerinde birden fazla geliştiricinin aynı anda çalışması veya projenin farklı aşamalarını takip etmek yaygın bir ihtiyaçtır. Bu noktada "sürüm kontrol sistemleri" (Version Control Systems - VCS) devreye girer. Sürüm kontrol sistemleri, zaman içinde kod tabanında yapılan değişiklikleri kaydetmenize, geçmiş sürümlere geri dönmenize, farklı kod dallarını birleştirmenize ve takım çalışmasını koordine etmenize olanak tanır. Git, günümüzün en popüler ve güçlü dağıtık sürüm kontrol sistemlerinden biridir. Git, merkezi bir sunucuya bağımlı olmadan her geliştiricinin kendi yerel makinesinde projenin tam bir kopyasına sahip olmasına olanak tanır. Bu, çevrimdışı çalışabilme, daha hızlı işlemler ve merkezi sunucunun çökmesi durumunda bile veri kaybı riskinin azalması gibi önemli avantajlar sunar.

1. Git Kurulumu ve İlk Yapılandırma

Git'i kullanmaya başlamadan önce bilgisayarınıza kurmanız gerekir. Git'i işletim sisteminize uygun şekilde resmi web sitesinden (https://git-scm.com/downloads) indirebilirsiniz. Kurulum tamamlandıktan sonra, Git'in kim olduğunuzu bilmesi için birkaç temel yapılandırma yapmanız önemlidir. Bu bilgiler, yaptığınız her commit'in kim tarafından yapıldığını gösterir:

Kod:
git config --global user.name "Adınız Soyadınız"
git config --global user.email "eposta@example.com"

Bu komutlar, global olarak tüm Git projeleriniz için geçerli olacaktır. Belirli bir proje için farklı bir isim veya e-posta kullanmak isterseniz, `--global` bayrağını kullanmadan proje dizini içinde aynı komutları çalıştırabilirsiniz.

2. Temel Git Kavramları

Git'i etkili bir şekilde kullanabilmek için üç temel alanı anlamak önemlidir:

  • Çalışma Dizini (Working Directory): Projenizin disk üzerindeki gerçek dosyalarının bulunduğu yerdir. Burada dosyaları düzenler, ekler veya silersiniz.
  • Hazırlık Alanı (Staging Area / Index): Bir sonraki commit'e dahil etmek istediğiniz değişiklikleri hazırladığınız ara bölgedir. Değişiklikleriniz burada bekler ve istediğiniz dosyaları seçerek commit'e eklemenizi sağlar.
  • Yerel Depo (Local Repository): Tüm commit'lerinizin ve projenizin tüm geçmişinin saklandığı .git klasörüdür. Her commit, projenizin belirli bir anlık görüntüsüdür.

3. Proje Başlatma ve Klonlama

Yeni bir Git projesi başlatmak veya mevcut bir projeyi klonlamak için farklı komutlar kullanılır:

  • Yeni bir proje başlatmak: Mevcut bir klasörü Git deposu haline getirmek için klasörün içine girip şu komutu çalıştırın:
    Kod:
    git init
    Bu, o klasörde gizli bir .git dizini oluşturur ve Git'in bu dizini takip etmesini sağlar.
  • Mevcut bir projeyi klonlamak: Uzak bir sunucuda (örn. GitHub) bulunan bir depoyu yerel makinenize indirmek için klonlama işlemi yapılır:
    Kod:
    git clone [url]https://github.com/kullanici/proje.git[/url]
    Bu komut, hem uzak depodaki tüm geçmişi indirir hem de otomatik olarak yeni bir yerel depo başlatır.

4. Değişiklikleri Takip Etme ve Kaydetme (Staging ve Committing)

Kodunuzda değişiklikler yaptıktan sonra, bu değişiklikleri Git'e kaydetmeniz gerekir. Bu süreç iki adımdan oluşur: hazırlık (staging) ve kaydetme (committing).

  • Değişikliklerin Durumunu Görüntüleme: Hangi dosyaların değiştiğini, hangilerinin takip edildiğini veya edilmediğini görmek için:
    Kod:
    git status
  • Değişiklikleri Hazırlık Alanına Ekleme: Değişen dosyaları bir sonraki commit'e dahil etmek üzere hazırlık alanına alırsınız:
    Kod:
    git add dosya_adi.txt
    git add .
    `git add .` komutu, çalışma dizinindeki tüm değişiklikleri (yeni, değiştirilmiş, silinmiş dosyalar) hazırlık alanına ekler.
  • Değişiklikleri Kaydetme (Commit Etme): Hazırlık alanındaki değişiklikleri yerel depoya kalıcı olarak kaydetme işlemidir. Her commit, projenizin belirli bir anlık görüntüsünü temsil eder ve açıklayıcı bir mesaj içermelidir:
    Kod:
    git commit -m "Yeni özellik eklendi ve hata düzeltildi"
    İyi bir commit mesajı, yapılan değişikliğin ne hakkında olduğunu kısa ve öz bir şekilde açıklamalıdır. Gelecekte geri dönüp geçmişi incelediğinizde bu mesajlar size rehberlik edecektir.

5. Geçmişi Görüntüleme

Projelerinizin commit geçmişini incelemek için `git log` komutunu kullanabilirsiniz. Bu komut, commit ID'si, yazar, tarih ve commit mesajı gibi bilgileri gösterir:

Kod:
git log

Farklı formatlarda görüntülemek için çeşitli bayraklar kullanılabilir:
Kod:
git log --oneline   # Her commit'i tek satırda gösterir
git log --graph     # Branch ve merge işlemlerini grafiksel olarak gösterir
git log -p          # Her commit'teki değişiklikleri (diff) gösterir

6. Dallanma (Branching) ve Birleştirme (Merging)

Dallanma (Branching), Git'in en güçlü özelliklerinden biridir. Bir projenin ana akışından ayrılıp bağımsız bir geliştirme yolunda çalışmanıza olanak tanır. Bu sayede yeni özellikler geliştirirken veya hataları düzeltirken ana kod tabanını etkilemeden güvenli bir ortamda çalışabilirsiniz.

  • Mevcut dalları listeleme:
    Kod:
    git branch
  • Yeni bir dal oluşturma:
    Kod:
    git branch yeni-ozellik
  • Dallar arasında geçiş yapma: Oluşturduğunuz veya mevcut bir dala geçmek için:
    Kod:
    git checkout yeni-ozellik
    Yaygın olarak kullanılan ve yeni bir dal oluşturup hemen o dala geçmenizi sağlayan kısayol:
    Kod:
    git checkout -b yeni-ozellik
  • Dalları birleştirme (Merging): Bir dalda yaptığınız değişiklikleri başka bir dala (genellikle `master` veya `main` dalına) entegre etmek için birleştirme işlemi yapılır. Örneğin, `yeni-ozellik` dalındaki değişiklikleri `main` dalına birleştirmek için önce `main` dalına geçip sonra `merge` komutunu çalıştırırsınız:
    Kod:
    git checkout main
    git merge yeni-ozellik
    Birleştirme sırasında "çakışmalar" (conflicts) meydana gelebilir. Bu, iki dalda aynı dosyanın aynı bölümlerinde farklı değişiklikler yapıldığında olur. Git size bu çakışmaları manuel olarak çözmeniz için rehberlik eder.
  • Bir dalı silme: Bir dalın işi bittiğinde ve birleştirildiğinde silinebilir:
    Kod:
    git branch -d yeni-ozellik

7. Uzak Depolar (Remotes): Push ve Pull İşlemleri

Git'in dağıtık yapısı sayesinde, yerel deponuzdaki değişiklikleri uzak bir depoyla (örneğin GitHub, GitLab, Bitbucket gibi platformlarda barındırılan) senkronize edebilirsiniz. Bu, takım üyeleriyle işbirliği yapmanın temelidir.

  • Uzak depoları görüntüleme:
    Kod:
    git remote -v
    Genellikle varsayılan uzak depo "origin" olarak adlandırılır.
  • Değişiklikleri Uzak Depoya Gönderme (Push): Yerel commit'lerinizi uzak depoya yüklemek için kullanılır:
    Kod:
    git push origin main
    Bu komut, yerel `main` dalınızdaki değişiklikleri uzak "origin" deposunun `main` dalına gönderir.
  • Değişiklikleri Uzak Depodan Çekme (Pull): Başka bir geliştiricinin uzak depoya gönderdiği değişiklikleri yerel deponuza indirmek için kullanılır:
    Kod:
    git pull origin main
    Bu komut hem uzak depodan yeni değişiklikleri `fetch` eder hem de onları yerel dalınıza `merge` eder.

    Sadece uzak depodaki değişiklikleri indirmek ama henüz yerel dalınıza birleştirmemek isterseniz `git fetch` kullanabilirsiniz. Daha sonra manuel olarak `git merge origin/main` ile birleştirebilirsiniz.

8. Tipik Bir Git İş Akışı Örneği

Bir projede yeni bir özellik geliştirirken izleyebileceğiniz yaygın bir iş akışı:

  • Projeyi klonlayın (ilk sefer için):
    Kod:
    git clone [url]https://github.com/ornek/proje.git[/url]
  • Proje dizinine girin:
    Kod:
    cd proje
  • Ana daldan güncel değişiklikleri çekin:
    Kod:
    git pull origin main
  • Yeni bir özellik dalı oluşturun ve o dala geçin:
    Kod:
    git checkout -b yeni-ozellik
  • Kod değişikliklerinizi yapın.
  • Değişiklikleri hazırlık alanına ekleyin:
    Kod:
    git add .
  • Değişiklikleri commit edin:
    Kod:
    git commit -m "Yeni özellik eklendi: Kullanıcı profili"
  • Değişikliklerinizi uzak depoya gönderin:
    Kod:
    git push origin yeni-ozellik
  • (Opsiyonel) Birleştirme isteği (Pull Request / Merge Request) açın.
  • Özellik dalınız `main` dala birleştirildikten sonra yerel dalınızı silin:
    Kod:
    git branch -d yeni-ozellik

example_git_workflow.png


9. İpuçları ve En İyi Uygulamalar

  • Küçük ve Anlamlı Commit'ler Yapın: Her commit tek bir mantıksal değişikliği yansıtmalı. Bu, geçmişi anlamayı ve hataları geri almayı kolaylaştırır.
  • Anlamlı Commit Mesajları Yazın: İlk satır kısa ve öz bir özet olmalı, sonraki satırlarda detayları açıklayabilirsiniz.
  • .gitignore Kullanın: Derlenmiş dosyalar, geçici dosyalar veya hassas bilgiler gibi versiyon kontrolüne dahil etmek istemediğiniz dosyaları `.gitignore` dosyasına ekleyin. Örnek:
    Kod:
    # Log dosyaları
    *.log
    
    # Geçici dosyalar
    *.tmp
    
    # Node.js bağımlılıkları
    node_modules/
  • Sık Sık `git pull` Yapın: Özellikle takım ortamında çalışırken, diğerlerinin değişikliklerini düzenli olarak çekerek çakışma olasılığını azaltın.
  • Her Zaman `git status` Kullanın: Bir komut çalıştırmadan önce çalışma dizininizin durumunu kontrol etmek iyi bir alışkanlıktır.
  • Görsel Git Araçları: Sourcetree, GitKraken, VS Code'un dahili Git entegrasyonu gibi görsel araçlar, Git öğrenme sürecini kolaylaştırabilir.

Sonuç

Git, modern yazılım geliştirmenin ayrılmaz bir parçasıdır. Bu rehber, Git'in temel komutlarını ve kavramlarını anlamanıza yardımcı olmayı amaçlamıştır. Başlangıçta karmaşık gelebilir, ancak pratik yaparak ve sıkça kullanarak zamanla Git'in gücünü ve esnekliğini tam olarak kavrayacaksınız. Unutmayın, Git ile hatalarınızdan korkmayın; her zaman geçmişe dönebilir ve yanlış giden şeyleri düzeltebilirsiniz. İyi pratikler ve düzenli kullanım, sizi daha verimli bir geliştirici yapacaktır. Daha derinlemesine bilgi için Git'in resmi dokümantasyonunu ve çeşitli çevrimiçi kaynakları incelemenizi şiddetle tavsiye ederiz.

Başarılar dileriz!
 
shape1
shape2
shape3
shape4
shape5
shape6
Üst

Bu web sitenin performansı Hazal Host tarafından sağlanmaktadır.

YazilimForum.com.tr internet sitesi, 5651 sayılı Kanun’un 2. maddesinin 1. fıkrasının (m) bendi ve aynı Kanun’un 5. maddesi kapsamında Yer Sağlayıcı konumundadır. Sitede yer alan içerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır.

YazilimForum.com.tr, kullanıcılar tarafından paylaşılan içeriklerin doğruluğunu, güncelliğini veya hukuka uygunluğunu garanti etmez ve içeriklerin kontrolü veya araştırılması ile yükümlü değildir. Kullanıcılar, paylaştıkları içeriklerden tamamen kendileri sorumludur.

Hukuka aykırı içerikleri fark ettiğinizde lütfen bize bildirin: lydexcoding@gmail.com

Sitemiz, kullanıcıların paylaştığı içerik ve bilgileri 6698 sayılı KVKK kapsamında işlemektedir. Kullanıcılar, kişisel verileriyle ilgili haklarını KVKK Politikası sayfasından inceleyebilir.

Sitede yer alan reklamlar veya üçüncü taraf bağlantılar için YazilimForum.com.tr herhangi bir sorumluluk kabul etmez.

Sitemizi kullanarak Forum Kuralları’nı kabul etmiş sayılırsınız.

DMCA.com Protection Status Copyrighted.com Registered & Protected