Có cách nào để tạo nhật ký cam kết git cho tháng trước và xuất nó dưới dạng tệp CSV không? Tôi đang tìm thứ gì đó mà tôi có thể chạy từ dòng lệnh hoặc ứng dụng của bên thứ 3. Tôi muốn các cột sau: tác giả, ngày cam kết, chủ đề, chỉnh sửa tệp và băm.Làm cách nào để tạo nhật ký cam kết git cho tháng trước và xuất nó dưới dạng CSV?
42
A
Trả lời
72
Bạn có thể sử dụng --since
và --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.
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
- 1. Tạo nhật ký PDF từ git cam kết
- 2. Git ký tắt cam kết trước đó?
- 3. Làm cách nào để chỉnh sửa các cam kết git trước đây để xóa mật khẩu của tôi khỏi nhật ký cam kết?
- 4. django admin - xuất khẩu dưới dạng csv
- 5. Khôi phục cam kết git trước đó?
- 6. Xuất nhật ký Subversion thành CSV
- 7. Làm cách nào để kiểm soát ngưỡng đổi tên khi cam kết tệp dưới git?
- 8. Làm cách nào để xuất nhật ký git sang tệp văn bản?
- 9. Làm cách nào để xuất dữ liệu bảng html dưới dạng tệp .csv?
- 10. Làm cách nào để "mở lại" một cam kết git?
- 11. Tham gia hai datafram trước khi xuất dưới dạng tệp .csv
- 12. Biết mã GIT trước khi cam kết?
- 13. Làm cách nào để xuất sqlite sang CSV bằng Python mà không bị định dạng dưới dạng danh sách?
- 14. Git: truy xuất cam kết cụ thể
- 15. git: squash/fixup trước đó cam kết
- 16. Làm cách nào để xóa cam kết git
- 17. Làm cách nào để chèn cam kết bằng git?
- 18. Tôi làm cách nào để cam kết thẻ git?
- 19. Git đẩy tất cả các cam kết dưới dạng cam kết đơn với thông báo tùy chỉnh
- 20. Định dạng tin nhắn cam kết
- 21. đọc csv với ngày tháng và số
- 22. kết quả truy vấn xuất dưới dạng CSV thông qua PHP
- 23. Hoàn toàn ghi đè một cam kết git trước đây
- 24. Làm cách nào để tạo Mẫu Tin nhắn Cam kết SVN và Móc để Xác minh
- 25. Có cách nào để sử dụng lại nhận xét trước đó về cam kết git không?
- 26. git look cam kết đăng nhập cho cam kết id
- 27. làm thế nào để hoàn tác git add trước khi cam kết
- 28. Truy vấn mysql và xuất dữ liệu dưới dạng CSV trong PHP
- 29. Dừng một git cam kết bởi một tác giả cụ thể bằng cách sử dụng móc trước cam kết
- 30. Làm cách nào để tạo chi nhánh Git mới từ một cam kết cũ?
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? –
Đ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
Đ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ó? –