Bạn muốn --stat
tùy chọn git diff
hoặc nếu bạn đang muốn phân tích điều này trong một tập lệnh, --numstat
tùy chọn.
git diff --stat <commit-ish> <commit-ish>
--stat
tạo ra đầu ra có thể đọc được của con người mà bạn đã từng thấy sau khi hợp nhất; --numstat
tạo ra một bố cục bảng đẹp mà các kịch bản có thể dễ dàng giải thích.
Tôi bằng cách nào đó đã bỏ lỡ rằng bạn đang tìm cách thực hiện điều này trên nhiều lần xác nhận cùng một lúc - đó là một nhiệm vụ cho git log
. Ron DeVera chạm vào điều này, nhưng bạn thực sự có thể làm nhiều hơn những gì anh ấy đề cập. Vì git log
bên trong gọi các máy móc khác để in thông tin được yêu cầu, bạn có thể cung cấp cho nó bất kỳ tùy chọn khác biệt nào - không chỉ --shortstat
. Những gì bạn có thể muốn sử dụng là:
git log --author="Your name" --stat <commit1>..<commit2>
nhưng bạn có thể sử dụng --numstat
hoặc --shortstat
là tốt. git log
cũng có thể chọn các cam kết theo nhiều cách khác nhau - hãy xem tài liệu . Bạn có thể quan tâm đến những thứ như --since
(thay vì chỉ định phạm vi cam kết, chỉ cần chọn các cam kết kể từ tuần trước) và --no-merges
(các cam kết hợp nhất không thực sự giới thiệu các thay đổi), cũng như các tùy chọn đầu ra đẹp ( --pretty=oneline, short, medium, full...
).
Đây là một lớp lót để nhận tổng số thay đổi thay vì mỗi lần thay đổi từ nhật ký git (thay đổi các tùy chọn lựa chọn cam kết như mong muốn - đây là cam kết của bạn, từ commit1 sang commit2):
git log --numstat --pretty="%H" --author="Your Name" commit1..commit2 | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}'
(bạn phải để nhật ký git in một số thông tin nhận dạng về cam kết; Tôi tùy ý chọn hàm băm, sau đó sử dụng awk để chỉ chọn ra các dòng có ba trường, đó là những trường có thông tin thống kê)