Git hakkında yazdığımı ipuçlarını bu sayfada toplayıp daha düzenli hale getirdim.

  • Sürüm Kontrol Sistemi Git
    • Genel Tanımlar
    • Git Komutları
      • git status
      • git branch
      • git pull
      • git add
      • git commit
      • git checkout
      • git grep
      • git merge
      • git help
  • Git Öğreniyorum - 2
    • Terminal komutları
      • ls(list files)
      • cd(Change Directory)
      • mkdir(Mak Directory)
      • rm(Remove)
      • cp(Copy) ve mv(Move)
      • clear
      • Dosya Açmak
      • exit
    • Git İpuçları
      • İki dosya arasındaki farkı görmek (git log ve git diff)
      • Branch Silmek
      • Kısayol Oluşturmak
      • Başka Branch’den dosya almak
      • Değişen dosya isimleri
  • Git Öğreniyorum - 3
    • git grep
    • Git kodlarını renklendirmek için
    • Git dallanmalarını düzenleme
    • Git’te dosya adı arama
    • Git ile Suçluyu Bulmak (git blame)
    • Git ile Sadece Belirlenen Dosyaları Gönderme
    • Otomatik Tamamlama
  • Git Öğreniyorum - 4
    • .gitignore kullanımı
    • git stash ile çalışmalarımıza ara vermek
    • Önceki branch’a geç kısayolu
    • ignore etmeden gizleme
    • Son değişiklikleri geri almak (git reset)
    • Arama sonuçları dosyaya yazdırma
    • İki bilgisayar arasında dosya kopyalama

1- .gitignore kullanımı

.gitignore dosyası git reposundan hariç tutulacak dosyaların listesinin bulunduğu repo ana dizinde bulunan bir ayar dosyasıdır.

Ana dizinde oluşturduğumuz .gitignore dosyasını git okuyup belirtilen kriterleri es geçecektir. Her bir satır bir kuralı tanımlar. diyez(#) ile başlayan satırlar yorum satırıdır.

# Belirli bir dosyayı es geçmek için
config.php

# Belirli bir dizini es geçmek için
logs/

# Belirli bir uzantılı dosyaları es geçmek için
*.styl

# log dosyalarını es geç ama error.log dosyaları hariç.
*.log
!errors.log

2- git stash ile çalışmalarımıza ara vermek

Bazen uzun çalışmalarımızın ortasında acil başka işler giriyor. Bu gibi durumlar için git’in stash gibi bir çözünü görmek güzel.

İşleyiş şöyle ara vermek istediğimiz brach’de iken

git stash save

komutunu yazarak işi saklıyoruz

Saved working directory and index state WIP on FATIH-195: f6e1ee0 Merge branch 'master' into FATIH-195
HEAD is now at f6e1ee0 Merge branch 'master' into FATIH-195

İşin saklandığını bize bildiren yukarıdaki gibi bir mesaj çıkacak.

Sonra diğer işimizi yapabiliriz. Diğer işimiz bittikten sonra yarım bıraktığımız işe geri dönüp

git stash pop

yazınca sakladığımız değişiklikleri gün yüzüne çıkarırız. İşe kaldığımız yerden devam edebiliriz.

3- Önceki branch’a geç kısayolu

git co -

Not: Daha önceki ipuçlarda belirttiğim checkout = co kısayolunu tanımladığınızı varsayıyorum.

@muratcorlu teşekkür.

4- ignore etmeden gizleme

git update-index --assume-unchanged <dosya_adi>

@mpaltun teşekkür.

5- Son değişiklikleri geri almak

Bazen yaptığımız değişiklikleri geri almak isteriz. Yapacağımız geri alma işlemine göre aşağıdaki 5 seçenekten birini seçmemiz gerekecek. Bu komutlar yaptığınız işlerin geri dönülmeyecek şekilde silinmesine neden olabilir. Yazdığınız kodları dikkatli kullanın.

git reset –hard Son gönderiye geri almak. Eğer birleştirme sonucu çakışmalar çıktı ise ve bu çakışmayı geri almak istiyorsanız bu kodu kullanabiliriz.

git reset –hard ORIG_HEAD veya git reset –hard origin/master En son birleştirilmiş stabil duruma geri döndürür. Daha yeni birleştirme işleri için kullanışlıdır. Eğer birleştirme işinizde çakışma varsa “git reset –hard” kullanınız.

git reset –soft HEAD^ Son gönderinizde bazı şeyleri unuttunuz mu? Bu durumdan kurtulmak kolay. Son gönderiyi geri almak istiyorsak ve yapılan değişikliklerinde bir yerlerde saklanmasını istiyorsak bu komutu kullanmalıyız.

git commit –amend Yaptığınız değişiklikleri koruyarak önceki gönderiyi yenilemek istiyorsak bu komutu kullanırız. Ayrıca önceki gönderi mesajını yenilemek içinde kullanılır bu komut.

git checkout – <dosya_adi> Sadece belirtilen dosyayı geri almak için kullanılır.

6- Arama sonuçları dosyaya yazdırma

git grep “arama_metni” > dosya_adi

@muratcorlu teşekkür.

7 - İki bilgisayar arasında dosya kopyalama

Git ile ilgisi yok ama bana lazım olur buraya kaydedeyim. Sanal bir makineye masaüstünden dosya kopyalamak için

cd Desktop

ile masaüstüne geçtikten sonra

scp dosya_adi kullanici@sunucu_ip:

ile dosyanızı belirtilen sunucunun ana klasörüne atabiliyoruz.

@muratcorlu teşekkür.

Kaynaklar

Sırayla İnternet Explorer sürümlerini bitirme yazıları yazmak sevindirici. İE8 şu anda %10 civarında ve düşmeye devam ediyor. Hala çok yoğun olarak kullanılan Windows XP’de İnternet Explorer 8 üstü tarayıcı kurulamıyor olması İE8’in güncellenmemesine neden oluyor. İE 8 yeni standartlar konusunda kısır bir tarayıcı HTML5 ve CSS3 özelliklerinin çoğunu desteklemiyor. Yeni stadart test iiçin yapılan ACID3 testi bunun en yii göstergesi; 100 üzerinden 23 alarak sınıfta kalıyor.

acid3 test

Tarayıcı desteği konusunda hala bir çözüm bulunamamış olması bir sorun. Aslında otomatik güncelleme yapan tarayıcılar için artık tarayıcı desteği sorun olmaktan çıktı. Maalesef bu konuda Microsoft her zaman ki gibi teknolojinin gerisinde kalıyor. Artık bunu bilerek yaptığına kanaat getirdim.

jQuery yeni sürümü 2.0 ie birlikte İE8 ve alt sürümlerin değini kaldırdı. İE( ve altı sürümlerin javascript performansının kötü olması bu kararda önemli.

## CSS3 desteği (%15 den %54 çıkıyor.)

HTML5 Desteği

Javascript

Ayrıca 64 adet sorundan daha kurtulmuş olacağız.

Sonuç

Yeni standartlar açısından bir çok kazanımımız olacağı kesin ama hala İE sürümleri ile uğraşmaya devam edeceğiz. İE9’un hızlı düşüşü(%5) bizi ümitlendiriyor, muhtemelen yüzdesi daha hızlı düşecek. Microsoft’un İE10’a güncelleme zorunluluğu İE9 oranlarını düşürdü. Umarım en yakın zamanda İE biter.

Kaynaklar