sobie sprawę, że jeśli używasz --name-only
wydrukować nazwy plików, format ładna jak pusty ciąg i używać this method do sortowania, Uniq i sortuj według maksymalnej liczby zatwierdzeń, w * nix/OS X, możesz użyć:
git log --name-only --author=John --pretty=format: | sort | uniq -c | sort -nr
Be sur e używasz właściwego autora.
E.g. jeśli staraliśmy się znaleźć autorów DHH w Rails, możemy zrobić:
git log --format='%aN <%aE>' | LC_ALL='C' sort -u | grep avid
i zauważ, że wszyscy autorzy DHH jest w git repo Rails używać nazwy „David Heinemeier Hansson”.Tak więc możemy zrobić:
git log --name-only --author="David Heinemeier Hansson" --pretty=format: | sort | uniq -c | sort -nr
które mogą wyjście:
3624
611 actionpack/CHANGELOG
432 activerecord/CHANGELOG
329 railties/CHANGELOG
206 activerecord/lib/active_record/base.rb
195 activesupport/CHANGELOG
157 actionpack/lib/action_controller/base.rb
153 railties/Rakefile
108 activerecord/lib/active_record/associations.rb
79 actionpack/lib/action_view/helpers/javascript_helper.rb
75 activerecord/lib/active_record/validations.rb
74 activerecord/test/base_test.rb
69 actionmailer/CHANGELOG
66 railties/lib/rails_generator/generators/applications/app/app_generator.rb
66 activerecord/Rakefile
66 actionpack/lib/action_controller/caching.rb
60 actionpack/lib/action_controller/routing.rb
59 railties/lib/initializer.rb
59 actionpack/Rakefile
57 actionpack/lib/action_controller/request.rb
...
tak, jak z 2015-02-21, było 3624 plików w szynach git repo, że wydaje się, że nigdy osobiście dokonano zatwierdzenia, najwyższa liczba zatwierdzeń dla pliku to ActionPack CHANGELOG przy zatwierdzeniu 611, a następnie ActiveRecord CHANGELOG, a ActiveRecord :: Base to plik Ruby, do którego najbardziej się zobowiązał.
Jeśli chcesz wykluczyć liczbę plików nie dotykały z hrabiów, użyj --format=
zamiast --pretty=format:
, np .:
git log --name-only --author="David Heinemeier Hansson" --format: | sort | uniq -c | sort -nr
Idziesz do podejmowania decyzji płacowych? – Basilevs
:) Nie. Chciałem tylko zidentyfikować części kodu, na których można się skupić, a użycie # commitów na plik przez autora byłoby jednym ze sposobów identyfikacji części kodu, na których należy się skupić w celu transferu wiedzy, gdy pracownik odchodzi. –
Czy chcesz napisać plik wsadowy? Jeśli tak, możesz użyć 'git rev-list HEAD --count --author = someDude - somefile.txt', aby utworzyć wynik liczenia. –