`git who` – Siapa yang menulis kode ini?!
(github.com/sinclairtarget)git-whoadalah alat CLI untuk menemukan penanggung jawab atas keseluruhan komponen atau subsistem dalam sebuah codebase- Berbeda dengan
git blame,git-whobekerja pada tingkat pohon file untuk mengidentifikasi penulis kode - Menyediakan tiga subcommand, dan masing-masing memberikan sudut pandang berbeda terhadap kepengarangan dalam repositori Git
-
table- Sebagai nilai default, menampilkan tabel yang merangkum kontribusi semua penulis yang melakukan commit di repositori
- Anda dapat menentukan path untuk memfilter hanya commit pada file di path tertentu
- Anda juga dapat menentukan nama branch, nama tag, atau "commit-ish" untuk memfilter hanya commit yang dapat dijangkau dari commit tertentu
- Gunakan flag
-m,-c,-l,-funtuk mengurutkan tabel berdasarkan berbagai metrik
-
tree- Menampilkan pohon file, dan setiap node menunjukkan penulis dengan kontribusi terbesar pada path tersebut
- Gunakan flag
-auntuk memberi anotasi pada semua file - Mendukung flag
-l,-f,-m,-c
-
hist- Menampilkan histogram/timeline aktivitas commit untuk menunjukkan riwayat kontribusi pada repositori
- Mendukung flag
-ldan-f
-
- Opsi tambahan untuk pemfilteran commit
- Gunakan opsi
--authordan--nauthoruntuk menentukan penulis yang ingin disertakan atau dikecualikan - Gunakan opsi
--sincedan--untiluntuk memfilter commit sebelum atau sesudah tanggal tertentu
- Gunakan opsi
- Caching: menyimpan data per repositori di
XDG_CACHE_HOME. Untuk menonaktifkan cache, aturGIT_WHO_DISABLE_CACHE=1 - Jika biner
git-whodipasang di path, Anda dapat menjalankangit whotanpa konfigurasi tambahan. Jika dipasang dengan nama lain atau ingin diatur secara eksplisit, Anda dapat menambahkan alias di konfigurasi Git - Jika file
.mailmapada di repositori Git,git whoakan menghormatinya sehingga commit dari orang yang sama dihitung bersama -
Metrik
- Jumlah commit: menunjukkan jumlah commit yang memodifikasi path
- Jumlah file: menunjukkan jumlah file unik yang dimodifikasi oleh penulis
- Jumlah baris yang ditambahkan dan jumlah baris yang dihapus: menunjukkan jumlah baris yang ditambahkan atau dihapus pada path
-
Perbedaan dengan
git blamegit blamemengidentifikasi commit yang memperkenalkan setiap baris berdasarkan kode di working tree, sedangkangit whomenelusuri sebagian log commit untuk mengagregasikan kontribusi- Kedua alat ini bekerja pada tingkat yang berbeda dan memberikan informasi yang berbeda
1 komentar
Komentar Hacker News
Terkait analisis "siapa yang menulis vim", tergantung alur kerja, kontributor internal bisa terlihat seolah berkontribusi lebih banyak
Alat ini benar-benar keren. Saya sempat mencobanya sebentar sebelum mengakhiri hari
Banyak orang salah paham tentang git blame. Ini bukan soal siapa yang melakukannya, melainkan commit mana yang menjadi penyebabnya
git-whobisa dipanggil sebagaigit who. Cukup atur alias di konfigurasi Git globalgit whateverakan mencari dan menjalankangit-whateverdari pathVersi low-tech-nya adalah memakai alias "nerdwars" untuk menjalankan "git shortlog -ns --no-merges". Ini cara yang bagus untuk mengetahui kontributor utama suatu proyek
Gitlab/Github seharusnya menambahkan fitur yang secara otomatis mengirim email kepada penulis terakhir dari baris kode yang dimodifikasi ketika merge request yang diajukan diperbarui
Alat ini hebat. Saya menggunakan akuntansi git-blame untuk melacak jumlah kode yang ditulis AI dan manusia di setiap rilis aplikasi
tigadalah frontend git TUI yang keren, dan memiliki subperintahtig blameyang indahYang kurang dari git bukanlah jumlah baris atau jumlah commit yang ditulis pengembang. Justru yang dibutuhkan adalah hal-hal seperti berikut
Sebagian orang melakukan commit dengan dua alamat email berbeda. Misalnya, mereka memakai email berbeda di komputer rumah dan komputer kantor. Akan bagus jika itu bisa didefinisikan sebagai identitas yang sama