Làm thế nào để git log từ tất cả các chi nhánh cho tác giả cùng một lúc?


212

Tôi cần nhận được báo cáo của tất cả các cam kết mà tác giả đã làm. Cho đến nay, tôi có đoạn script bao bọc lệnh sau:

git log --pretty=format:"%ad:%an:%d:%B" --date=short --reverse --all --since=2.months.ago --author=Petr

Nó hoạt động tốt. Tuy nhiên, nó chỉ báo cáo các hành động cho chi nhánh hiện tại. Có bất kỳ tùy chọn nào sẽ ghi lại các thông điệp cam kết cho tác giả từ tất cả các chi nhánh , không chỉ hình thành hiện tại?

Nói cách khác, git có thể tạo một chuỗi được sắp xếp ngược (theo datetime) của tất cả các xác nhận trong kho lưu trữ và trích xuất thông tin nhật ký từ chuỗi đó không?

Đã giải quyết: (được sao chép từ nhận xét bên dưới bị ẩn đi)

Vấn đề là tôi có một kho lưu trữ và hai bản sao để hoạt động đồng thời trên hai nhánh. Tôi đã đẩy các thay đổi vào kho lưu trữ gốc, nhưng tôi quên tìm nạp các thay đổi vào kho lưu trữ nhân bản. Bằng cách này, dường như nó --allkhông hoạt động khi sử dụng nó cho kho lưu trữ nhân bản.


Đoán bạn có thể viết một kịch bản shell cho điều đó: git logchấp nhận committishlàm đối số đầu tiên của nó: git log mybranch(và liệt kê tất cả các nhánh bạn có git branch).
Alexander Pavlov

@AlexanderPavlov: Có lẽ tôi không hiểu. Là gì committish? Có thể lấy thông tin qua một lệnh git không?
pepr

1
Tôi đang nhận được cam kết từ tất cả các chi nhánh, không chỉ hiện tại? Điều này được mong đợi kể từ khi bạn cung cấp --all. Lệnh của bạn là chính xác
CharlesB

1
@AlexanderPavlov: Đừng bận tâm với việc git rev-listphân tích cú pháp, git log --allvẫn ổn.
CharlesB

1
@CharlesB: Đó là những gì tôi nghĩ về --all, nhưng dường như nó không hoạt động theo cách này đối với tôi. Tôi không hiểu lời giải thích trợ giúp của nó: Giả vờ như thể tất cả các ref trong refs/được liệt kê trên dòng lệnh như <commit>.
pepr

Câu trả lời:


185

Lệnh của bạn là đúng, vì bạn sử dụng công --alltắc cung cấp tất cả các xác nhận từ tất cả các chi nhánh. Để trả lời câu hỏi trong bình luận của bạn, nó cũng hoạt động trong các kho lưu trữ trần.


64

Thay vì --all bạn có thể muốn sử dụng --branches, vì --allcũng bao gồm refs/tagsrefs/remotes.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.