Git Öğreniyorum - 3

Git grep

Git’in önemli komutu grep hakkında bir kaç bilgi vereceğim.

Ben grep’i git’in arama komutu olarak biliyordum, ancak unix sistemlerde filtreleme komutu imiş. Geniş kullanım alanı varmış yani.

Genel söz dizimi

$ git grep [özellikler] arama_kelimesi [dosyalar] 

Örneğin

$ git grep 'kapsayamama' /home/fatih/ana.css

Yukarıdaki örnek basit bir kullanıma örnek olarak veridi. /home/fatih/ana.css klasörü içinde kapsayamama kelimesini arayacaktır.

Grep’in bazı özellikleri vardır. Bu kısayolları kullanarak aramalarımıza bazı özellikler ekleriz.

$ git grep -v 'kapsayamama' /home/fatih/ana.css

İçinde kapsayamama geçmeyen satırları bize verecektir. -v (invert-match)

$ git grep -c 'kapsayamama' /home/fatih/ana.css

Aradığımız dosya içinde kapsayamama kelimesinin kaç kere geçtiğini bize gösterir. -c (count)

$ git grep -i 'kapsayamama' /home/fatih/ana.css

Aramanın büyük-küçük harfe duyarsızlaştırır. Yani arama sonuçlarında Kapsayamama çıkar. -i (ignore-case)

$ git grep -r 'kapsayamama' /home/fatih/

Aramanın belirlene dizin ve alt dizinlerde yapılmasını belirler. -r (recursive)

$ git grep -n 'kapsayamama' /home/fatih/

grep ile listelenen sonuçların hangi satırda olduğunu gösterir. -n (line-number)

$ git grep '<script' /home/fatih/

‘’(ters bölü işareti) karakteri kendisinden sonra gelen karakterin özel bir karakter olduğunu gösterir ve aramaya dahil edilmesini sağlar.

$ git grep 'kapsayamama' /home/fatih/

Birden fazla arama bloğunu bir arada kullanmak için | boru(pipe) işaretini kullanırız.

$ git grep '^script' /home/fatih/

grep aramalarımızda Düzenli İfadeleri(regex) kullanabiliriz. Yukarıdaki örnekte script ile başlayan sonuçları getir demektir.

$ git grep 'script$' /home/fatih/

Yukarıdaki script ile biten satırları listeler. Düzenli ifadeler ile yapabileceklerimizi düşündüğümüzde aramalarımızı ne kadar özelleştirebileceğimizi anlarız.

$ git grep  /home/fatih | more

grep ile arama yaptığımızda pencere genişliği kadar çıktıları bize gösterir. Tüm satırın gösterilmesi için | more kullanırız.

Git kodlarını renklendirmek için


git komutları ve işlemlerini renklendirmek mümkündür. Daha okunaklı ekranlar için Git’in status, branch ve diff komutlarını renklendirelim. Renklendirme için konfigürasyon dosyasına ~/.gitconfig aşağıdaki kodları eklemeniz yeterli.

[color] branch = auto diff = auto status = auto
[color "branch"] current = yellow reverse local = yellow remote = green
[color "diff"] meta = yellow bold frag = magenta bold old = red bold new = green bold
[color "status"] added = yellow changed = green untracked = cyan 

Git dallanmalarını düzenleme


Git'te master'a gitmiş bütün eski dallanmalarımızı(branch) -lokalden- silmek için şöyle bir komut kullanabiliriz:

git branch --merged master | grep -v 'master$' | xargs git branch -d

Git te dosya adı arama


git'te dosya adıyla arama:

git ls-files '<em>kelime</em>' 

Git ile Suçluyu Bulmak

git blame

Bir örnek yapalım:

git blame source/css-ile-tablolari-sekillendirmek.md

kodu aşağıdaki sonucu döndürüyor. Her satırı tek tek en son kimin, ne zaman değiştirdiğini gösteriyor.

Git ile Sadece Belirlenen Dosyaları Gönderme

git add

ile eklenecek dosya veya dosyalar eklenir ve sonra

git commit -m "aciklama_yaz" 

ile gönderim yapılır. Bir örnek yapalım. Örneği 3 dosyada değişiklik yaptık.

Ancak biz bu değişikliklerden sadece bir tanesini(source/xhtml-ipuclari-1.md) göndermek istiyoruz.

Dosyayı gönderirken

git commit -m "xhtml makalesindeki duzeltme yapildi"

kullanımı önemli.

Sonuçta sadece source/xhtml-ipuclari-1.md dosyası gönderilirken diğer iki dosya gönderilmedi.

Otomatik Tamamlama

Git ile terminalde kod yazarken en güzel özelliklerden birisi tab tuşu ile otomatik tamamlama yapabilme özelliği. Benim bilgisayarımda hazır geliyor eğer sizde yüklü değilse kaynak bağlantıda yükleme ayrıntıları mevcut.

$ git co<tab><tab> commit config

Yukarıda görüldüğü gibi git co yazdık ve yazacağımız komutu unuttuk veya tamamını yazmak istemedik, ilk tab tuşuna bastığımızda eğer başka eşleşen kelime yoksa bize direk sonucu getirir, tab tuşuna iki kere basınca bu sefer eşleşen tüm kelimeler altta listelenir. Sonraki tab tuşuna basışlarımızda ise altta listelenen kelimeler arasında gezeceğiz.

Yukarıdaki örnekte eğer com<tab yapsa idik commit tamamlamasını otomatik yapacaktı.

Read more

gemini ile oluşturulmuştur :)

Lokalde tarayıcı geliştirme araçları üzerinden network isteklerini değiştirmek

FE geliştiriciler olarak hayatımız network istekleri(request) ve BE'den gelen dönen cevaplarla(response) geçiyor. Kendi bilgisayarımızda çalışırken bu istekleri değiştirme ihtiyacı olduğunda mock server kurmak veya çeşitli kütüphanelerle bu işi yapıyordum. Mock işini tarayıcı üzerinden yapmaya başlayalı çok rahatladım. Süper kolaylık sağlayan bir özellik. Genel kullanım alanları * BE

By Fatih Hayrioğlu
CSS'de lightdark() fonksiyonuyla kolayca koyu / açık mod yazımı

CSS'de lightdark() fonksiyonuyla kolayca koyu / açık mod yazımı

Bir önceki yazımda bahsettiğim gibi CSS'in yeni özelliklerinin bazıları çığır açan özellikler, bazıları kulllanıcı deneyimini iyileştirme yönünde özellikler bazıları da lightdark() fonksiyonu gibi yazım kolaylığı sağlayan özellikler. lightdark() fonksiyonu mevcut uyumlu web yazımındaki büyük sorun olan aşağıdaki kullanımı daha anlaşılır ve düzenli hale getirmeye yarıyor. :root { color-scheme:

By Fatih Hayrioğlu
Tarayıcı geliştirici araçlarında yakınlaştırma ve uzaklaştırma yapmak

Tarayıcı geliştirici araçlarında yakınlaştırma ve uzaklaştırma yapmak

Yaşlandıkça böyle ihtiyaçlar doğuyor galiba. Belki ihtiyacı olan olur diye buraya not edeyim. Chrome Dev Tools gibi araçlarda başlangıçtaki görünüm küçük kalabiliyor. Benim için küçük mesela :) Yazı boyutlarını büyütmek için Cmd + +  and  Cmd + - (Windows'ta Cmd yerine Ctrl kullanın). Ancak bu kısayol İngilizce klavye için Türkçe klavyelerde bunu yapmak

By Fatih Hayrioğlu