2012-05-02 23 views

Trả lời

72

Bạn có thể sử dụng --since--pretty tùy chọn git log, ví dụ:

git log --since="last month" --pretty=format:'%h,%an,%ar,%s' > log.csv 

Tham khảo phần DẠNG PRETTY của Git log man page cho các tùy chọn hơn.

+0

Hoạt động hoàn hảo! Cảm ơn bạn. Có cách nào để đưa vào (trong một cột riêng biệt) tệp nào bị ảnh hưởng/chỉnh sửa không? –

+1

Điều này phức tạp hơn, vì nói chung, có nhiều hơn một tệp bị ảnh hưởng bởi cam kết. Bạn có muốn một dòng bởi * tập tin * (do đó nhiều dòng cho cùng một cam kết) hoặc một (dấu chấm phẩy tách ra?) Danh sách các tập tin bị ảnh hưởng cho mỗi cam kết? Trong mọi trường hợp, điều này sẽ liên quan đến một kịch bản shell tôi đoán. – Simon

+0

Điều này thật tuyệt. Nhưng cũng có một lựa chọn cho tháng cuối cùng từ ngày 1 đến ngày cuối cùng của nó? –

24

Lệnh này tạo ra một định dạng CSV chứa băm, người sử dụng, ngày/giờ, mô tả, các file đã thay đổi, chèn, xóa

git log --pretty=format:'"%h","%an","%aD","%s",' --shortstat --no-merges | paste - - - > log.csv 
+2

hợp nhất các cam kết đã làm rối tung đầu ra cho tôi, thêm tham số '--no-merges' đã giúp với điều đó. Tôi cũng đã sử dụng '% x09' cho một dấu phân tách tab thay vì dấu phẩy cho các văn bản cam kết chứa dấu phẩy. –

2

Để thêm, nếu bạn muốn áp dụng phạm vi ngày, thêm --Khi hoặc --trước đây ở định dạng này "yyyy-mM-d"

git log --before="2016-12-1" --pretty=format:'"%h","%an","%ae","%aD","%s",' --shortstat --no-merges | paste - - - > log.csv 
Các vấn đề liên quan