`git who` – Bu kodu kim yazdı?!
(github.com/sinclairtarget)git-who, kod tabanının genel bileşenleri veya alt sistemleri için sorumluları bulmaya yarayan bir CLI aracıdırgit blame'in aksinegit-who, dosya ağacı düzeyinde çalışarak kod yazarlarını tanımlar- Üç alt komut sunar; her biri Git deposundaki katkı sahipliğine farklı bir açıdan bakar
-
table- Varsayılan olarak depoya commit yapan tüm yazarların katkılarını özetleyen bir tablo yazdırır
- Belirli bir yolun dosyalarına ait commit'leri filtrelemek için yol belirtilebilir
- Belirli bir commit'ten erişilebilen commit'leri filtrelemek için branch adı, tag adı veya "commit-ish" belirtilebilir
-m,-c,-l,-fbayrakları kullanılarak tablo farklı metriklere göre sıralanabilir
-
tree- Dosya ağacını yazdırır ve her düğümde o yola en çok katkı yapan yazarı gösterir
-abayrağıyla tüm dosyalar açıklamalı olarak gösterilebilir-l,-f,-m,-cbayraklarını destekler
-
hist- Commit etkinliğinin histogramını/zaman çizelgesini yazdırarak depoya katkı geçmişini gösterir
-lve-fbayraklarını destekler
-
- Commit filtreleme için ek seçenekler
--authorve--nauthorseçenekleriyle dahil edilecek veya hariç tutulacak yazarlar belirtilebilir--sinceve--untilseçenekleriyle belirli bir tarihten önceki veya sonraki commit'ler filtrelenebilir
- Önbellekleme: Verileri depo bazında
XDG_CACHE_HOMEaltında önbelleğe alır. Önbelleği devre dışı bırakmak içinGIT_WHO_DISABLE_CACHE=1ayarlanabilir git-whoikili dosyası PATH'e kurulursa ek ayar gerekmedengit whoçalıştırılabilir. Farklı bir adla kurmak veya açıkça yapılandırmak için Git ayarlarına alias eklenebilir- Git deposunda
.mailmapdosyası varsagit whobuna uyar ve aynı kişiye ait commit'leri birlikte sayar -
Metrikler
- Commit sayısı: Yolu değiştiren commit sayısını gösterir
- Dosya sayısı: Yazarın değiştirdiği benzersiz dosya sayısını gösterir
- Eklenen satır sayısı ve kaldırılan satır sayısı: Yola eklenen veya yoldan kaldırılan satır sayısını gösterir
-
git blameile farklarıgit blame, çalışma ağacındaki koda göre her satırı hangi commit'in eklediğini belirlerkengit who, commit logunun bir bölümünü tarayarak katkıları toplulaştırır- İki araç farklı seviyelerde çalışır ve farklı bilgiler sunar
1 yorum
Hacker News görüşleri
"vim'i kim yazdı" analizine ilişkin olarak, iş akışına bağlı olarak iç katkıcılar daha fazla katkı yapmış gibi görünebilir
Bu araç gerçekten harika. Günü bitirmeden önce kısa bir süre denedim
git blame birçok kişi tarafından yanlış anlaşılıyor. Kimin yaptığından ziyade, hangi commit'in sebep olduğuyla ilgilidir
git-who,git whoolarak çağrılabilir. Global Git ayarlarında bir takma ad tanımlamak yeterligit whatever, path içindegit-whateverı bulup çalıştırırDaha düşük teknolojili sürüm olarak "nerdwars" adlı bir takma ad kullanıp "git shortlog -ns --no-merges" çalıştırıyorum. Bu, bir projenin ana katkıcılarını anlamanın iyi bir yolu
Gitlab/Github, gönderilen merge request'ler değiştirilen kod satırlarının son yazarına otomatik olarak e-posta gönderen bir özellik eklemeli
Bu araç mükemmel. Uygulamanın her sürümünde yapay zeka ve insanlar tarafından yazılan kod miktarını takip etmek için git-blame muhasebesi kullanıyorum
tig, harika bir TUI git frontend'idir ve çok güzel birtig blamealt komutuna sahiptirGit'te eksik olan şey, geliştiricinin yazdığı satır sayısı veya commit sayısı değil. Daha ziyade şu tür şeylerdir
Bazı insanlar iki farklı e-posta ile commit atıyor. Örneğin ev bilgisayarı ve iş bilgisayarında farklı e-posta kullanıyorlar. Bunları aynı kişi olarak tanımlayabilmek güzel olurdu