logo
eng-flag

Git Notları ve İpuçları

İçindekiler

  1. Başlangıç
  2. Temel Komutlar
  3. Dal Oluşturma ve Birleştirme
  4. Uzak Depolar
  5. Değişiklikleri Geri Alma
  6. Gelişmiş Komutlar
  7. Git Yapılandırması
  8. Pratik Bir Senaryo Örneği
  9. Git İş Akışı En İyi Uygulamaları

Başlangıç

Yeni bir Git deposu başlatma

git init

Mevcut bir depoyu klonlama

git clone <depo-url>

Örnek:

git clone https://github.com/kullaniciadi/depo-adi.git

Temel Komutlar

Deponuzun durumunu kontrol etme

git status

Dosyaları hazırlama alanına ekleme

git add <dosya-adi>

Tüm dosyaları ekleme:

git add .

Değişiklikleri kaydetme

git commit -m "Kayıt mesajınız"

Kayıt geçmişini görüntüleme

git log

Daha özet bir görünüm için:

git log --oneline

Kayıtlar, çalışma ağacı vb. arasındaki değişiklikleri gösterme

git diff

Dal Oluşturma ve Birleştirme

Tüm dalları listeleme

git branch

Yeni bir dal oluşturma

git branch <dal-adi>

Bir dala geçme

git checkout <dal-adi>

Yeni bir dal oluşturma ve geçme

git checkout -b <dal-adi>

Bir dalı mevcut dala birleştirme

git merge <dal-adi>

Bir dalı silme

git branch -d <dal-adi>

Uzak Depolar

Uzak depo ekleme

git remote add <uzak-ad> <depo-url>

Örnek:

git remote add origin https://github.com/kullaniciadi/depo-adi.git

Uzak depoları listeleme

git remote -v

Uzak depodan değişiklikleri getirme

git fetch <uzak-ad>

Uzak depodan değişiklikleri çekme

git pull <uzak-ad> <dal-adi>

Uzak depoya değişiklikleri gönderme

git push <uzak-ad> <dal-adi>

Değişiklikleri Geri Alma

Çalışma dizinindeki değişiklikleri atma

git checkout -- <dosya-adi>

Bir dosyayı hazırlama alanından çıkarma

git reset HEAD <dosya-adi>

Son kaydı değiştirme

git commit --amend

Belirli bir kayda sıfırlama

git reset --hard <kayit-hash>

Bir kaydı geri alma

git revert <kayit-hash>

Gelişmiş Komutlar

Etkileşimli rebase

git rebase -i <kayit-hash>

Bir kaydı seçip alma

git cherry-pick <kayit-hash>

Etiket oluşturma

git tag <etiket-adi>

Değişiklikleri saklama

git stash

Saklanan değişiklikleri uygulama

git stash apply

İzlenmeyen dosyaları temizleme

git clean -f

Git Yapılandırması

Genel kullanıcı adını ayarlama

git config --global user.name "Adınız"

Genel kullanıcı e-postasını ayarlama

git config --global user.email "e-posta@ornek.com"

Varsayılan düzenleyiciyi ayarlama

git config --global core.editor "vim"

Tüm yapılandırmaları listeleme

git config --list

Pratik Bir Senaryo

Projeyi Kurma

Diyelim ki "SuperApp" adında yeni bir proje başlatan bir geliştiricisisiniz. Versiyon kontrolü için Git kullanmaya karar verdiniz. Git kullanarak bu projeyi kurma ve yönetme sürecini inceleyelim.

Depoyu Başlatma

Önce, projeniz için yeni bir dizin oluşturun ve bir Git deposu başlatın:

mkdir SuperApp
cd SuperApp
git init

Git'i Yapılandırma

Git yapılandırmanızı ayarlayın:

git config --global user.name "Adınız"
git config --global user.email "mailiniz@ornek.com"

İlk Commit'i Oluşturma

Bazı Dosyalar Oluşturma

Projeniz için birkaç başlangıç dosyası oluşturun:

echo "# SuperApp" > README.md
echo "console.log('Merhaba, SuperApp!');" > app.js
echo "body { font-family: Arial, sans-serif; }" > styles.css

Durumu Kontrol Etme

Deponuzun durumunu kontrol edin:

git status

Bu dosyaların izlenmediğini göreceksiniz.

Dosyaları Hazırlama Alanına Ekleme

Bu dosyaları hazırlama alanına ekleyin:

git add README.md app.js styles.css

Değişiklikleri Commit'leme

İlk commit'inizi yapın:

git commit -m "İlk commit: README, app.js ve styles.css eklendi"

Dallanma ve Özellik Geliştirme

Yeni Bir Dal Oluşturma

Kullanıcı kimlik doğrulaması için yeni bir özellik eklemek istiyorsunuz. Bu özellik için yeni bir dal oluşturun:

git checkout -b ozellik/kullanici-kimlik-dogrulama

Değişiklikler Yapma

Kullanıcı kimlik doğrulaması için yeni bir dosya ekleyin:

echo "function girisYap() { /* TODO: Giriş mantığını uygula */ }" > kimlik.js

app.js dosyasını yeni kimlik.js dosyasını içerecek şekilde değiştirin:

echo "import './kimlik.js';" >> app.js
echo "// TODO: Kullanıcı kimlik doğrulamasını uygula" >> app.js

Değişiklikleri Hazırlama ve Commit'leme

Bu değişiklikleri hazırlayın ve commit'leyin:

git add kimlik.js app.js
git commit -m "Kullanıcı kimlik doğrulaması için temel yapı eklendi"

Ana Dala Geri Dönme

Ana dala geri dönün:

git checkout main

Başka Bir Dal Oluşturma

Farklı bir özellik için başka bir dal oluşturun:

git checkout -b ozellik/veri-gorsellestirme

Bu özellik için yeni bir dosya ekleyin:

echo "function grafikOlustur() { /* TODO: Grafik oluşturmayı uygula */ }" > grafik.js

Hazırlayın ve commit'leyin:

git add grafik.js
git commit -m "Veri görselleştirme için temel yapı eklendi"

Birleştirme ve Çakışmaları Çözme

Kullanıcı Kimlik Doğrulama Dalını Birleştirme

Ana dala geri dönün ve kullanıcı kimlik doğrulama özelliğini birleştirin:

git checkout main
git merge ozellik/kullanici-kimlik-dogrulama

Veri Görselleştirmeyi Birleştirmeyi Deneme

Şimdi veri görselleştirme özelliğini birleştirmeyi deneyin:

git merge ozellik/veri-gorsellestirme

Her iki dal da app.js'i değiştirdiyse, bu bir birleştirme çakışması oluşturabilir.

Çakışmayı Çözme

app.js'i açın ve çakışmayı manuel olarak çözün. Sonra:

git add app.js
git commit -m "ozellik/veri-gorsellestirme birleştirildi ve çakışmalar çözüldü"

Uzak Depolarla Çalışma

Uzak Depo Ekleme

Bir uzak depo ekleyin (GitHub'da bir tane oluşturduğunuzu varsayarak):

git remote add origin https://github.com/kullaniciadiniz/SuperApp.git

Uzak Depoya Gönderme

Değişikliklerinizi uzak depoya gönderin:

git push -u origin main

Çekme İsteği Oluşturma

Veri görselleştirme özelliği için, dalı gönderin ve bir çekme isteği oluşturun:

git checkout ozellik/veri-gorsellestirme
git push -u origin ozellik/veri-gorsellestirme

Ardından GitHub'a gidin ve bu dal için bir çekme isteği oluşturun.

İşbirliği ve Senkronizasyon

Depoyu Klonlama (yeni bir takım üyesi için)

Yeni bir takım üyesi depoyu şöyle klonlar:

git clone https://github.com/kullaniciadiniz/SuperApp.git
cd SuperApp

Değişiklikleri Getirme ve Çekme

Her gün çalışmaya başlamadan önce, değişiklikleri getirin ve çekin:

git fetch origin
git pull origin main

Yeni Bir Özellik Dalı Oluşturma

Bir hata düzeltmesi için yeni bir dal oluşturun:

git checkout -b hata-duzeltme/giris-hatasi

Değişiklikler yapın, commit'leyin ve gönderin:

# kimlik.js'de değişiklikler yapın
git add kimlik.js
git commit -m "Giriş hatası yönetimi düzeltildi"
git push -u origin hata-duzeltme/giris-hatasi

İleri Düzey Git Kullanımı

Bir Commit'i Düzeltme

README'yi güncellemeyi unuttuğunuzu fark ettiniz. Son commit'i düzeltin:

echo "## Kullanıcı Kimlik Doğrulama" >> README.md
git add README.md
git commit --amend

Etkileşimli Rebase

Diyelim ki özellik dalınızdaki son 3 commit'i birleştirmek istiyorsunuz:

git checkout ozellik/kullanici-kimlik-dogrulama
git rebase -i HEAD~3

Etkileşimli rebase düzenleyicisinde, birleştirilecek commit'leri işaretleyin.

Sürüm için Etiket Oluşturma

Tüm özellikleri birleştirip hataları düzelttikten sonra, bir sürüm etiketi oluşturun:

git tag -a v1.0.0 -m "Sürüm 1.0.0"
git push origin v1.0.0

Değişiklikleri Geri Alma

Çalışma Dizinindeki Değişiklikleri Atmak

Bir hata yaptıysanız ve değişiklikleri atmak istiyorsanız:

git checkout -- kimlik.js

Bir Dosyayı Hazırlama Alanından Çıkarma

Yanlışlıkla bir dosyayı hazırlama alanına eklediyseniz:

git reset HEAD styles.css

Bir Commit'i Geri Alma

Bir commit'i geri almanız gerekiyorsa:

git revert <commit-hash>

Temizleme

Birleştirilmiş Dalları Silme

Özellik dallarını birleştirdikten sonra, onları silin:

git branch -d ozellik/kullanici-kimlik-dogrulama
git branch -d ozellik/veri-gorsellestirme
git push origin --delete ozellik/kullanici-kimlik-dogrulama
git push origin --delete ozellik/veri-gorsellestirme

İzlenmeyen Dosyaları Temizleme

İzlenmeyen dosyaları kaldırın (bunu kullanırken dikkatli olun!):

git clean -n  # Kuru çalıştırma
git clean -f  # Gerçekten dosyaları kaldır

Git İş Akışı En İyi Uygulamaları

  1. Sık kayıt yapın: Tek bir sorunu veya özelliği ele alan küçük, odaklanmış kayıtlar yapın.

  2. Anlamlı kayıt mesajları yazın: Hangi değişikliklerin yapıldığını ve neden yapıldığını açıklayan net ve açıklayıcı kayıt mesajları kullanın.

  3. Dalları kullanın: Her özellik veya hata düzeltmesi için yeni bir dal oluşturarak çalışmanızı düzenli ve izole tutun.

  4. Göndermeden önce çekin: Çakışmaları önlemek için kendi değişikliklerinizi göndermeden önce her zaman uzak depodan en son değişiklikleri çekin.

  5. Değişikliklerinizi gözden geçirin: Kaydetmeden önce değişikliklerinizi gözden geçirmek için git diff ve git status kullanın.

  6. gitignore kullanın: Git tarafından izlenmemesi gereken dosya ve dizinleri (örneğin, derleme ürünleri, geçici dosyalar) hariç tutmak için bir .gitignore dosyası oluşturun.

  7. Deponuzu temiz tutun: Düzenli olarak birleştirilmiş dalları silin ve izlenmeyen dosyaları kaldırmak için git clean kullanın.

  8. Anlamlı dal isimleri kullanın: Dallarınızı açıklayıcı bir şekilde adlandırın, örneğin "ozellik/kullanici-kimlik-dogrulama" veya "hata-duzeltme/giris-hatasi".

  9. Özellik dallarını rebase edin: Özellik dallarınızı ana dalla güncel tutmak ve temiz bir geçmiş elde etmek için git rebase kullanın.

  10. Sürümler için etiketler kullanın: Önemli kayıtları, özellikle sürümler için, daha sonra kolayca referans almak üzere etiketleyin.

2024 © Tüm hakları saklıdır - buraxta.com