Ana Sayfa

CIA'in Gizli Git İpucu: Birleştirilmiş Dalları Tek Satırda Temizleyin

1 dk okuma

2017 yılında WikiLeaks tarafından sızdırılan Vault7 belgeleri arasında, CIA'in geliştirici ekibinin dahili Git ipuçları ve püf noktaları içeren bir sayfası ortaya çıktı. Bu belgeler genellikle siber saldırı araçları ve gözetim yazılımlarıyla dolu olsa da, bu mütevazı Git komutu geliştiriciler için oldukça değerli bir keşif oldu. Yerel Git depolarında zamanla biriken, birleştirilmiş ancak silinmemiş dallar, depo geçmişini karmaşıklaştırarak "git branch" çıktısını bir mezarlığa dönüştürebilir. Bu durum, geliştiricilerin gereksiz dalları tek tek silme zahmetine girmesine neden olur.

CIA'in geliştirici ekibi, bu soruna zarif bir çözüm sunan tek satırlık bir komut geliştirmiş: git branch --merged | grep -v "\*\|master" | xargs -n 1 git branch -d. Bu komutun işleyişi oldukça basittir: git branch --merged mevcut dala birleştirilmiş tüm yerel dalları listeler. Ardından grep -v "\*\|master" ifadesi, mevcut dalı (*) ve "master" dalını listeden çıkararak yanlışlıkla silinmelerini engeller. Son olarak, xargs -n 1 git branch -d komutu, kalan her bir dalı güvenli bir şekilde siler. Buradaki küçük 'd' harfi, birleştirilmemiş dalların silinmesini önleyerek veri kaybının önüne geçer.

Günümüzde birçok projenin "master" yerine "main" dalını kullanması nedeniyle, komut git branch --merged origin/main | grep -vE "^\s*(\*|main|develop)" | xargs -n 1 git branch -d şeklinde güncellenebilir. Bu sayede "main" veya "develop" gibi sık kullanılan diğer dallar da silinmekten korunur. Bu komutu bir Git alias'ı olarak kaydetmek (örneğin alias ciaclean='...') geliştiricilere büyük kolaylık sağlar. Her dağıtım sonrası "main" dalından çalıştırıldığında, dal listesi onlarca girdiden sadece birkaçına düşerek düzenli bir çalışma ortamı sunar ve haftalık olarak birkaç dakikalık zaman tasarrufu sağlar.

İçgörü

Bu komut, geliştiricilerin yerel Git depolarını düzenli tutarak verimliliği artırır ve zaman kazandırır.

Kaynak