Làm cách nào để nhật ký Git hiển thị tất cả các cam kết của ngày hôm nay?


77

Tôi muốn có thể xem tất cả các cam kết mà tôi đã thực hiện ngày hôm nay bằng cách sử dụng git log. Tôi đã nghĩ ra git log --after="yesterday"
Tuy nhiên, điều đó có vẻ hơi khó xử với tôi, có lệnh nào đơn giản hơn để đạt được hiệu quả tương tự không?

Câu trả lời:


91

Chỉnh sửa: Vì đây là câu trả lời được chấp nhận nên tôi không thể xóa nó, vì vậy tôi đăng câu trả lời của @ Simon ở đây:

git log --since="6am"

Và tất nhiên bạn có thể điều chỉnh thời gian thành bất kỳ thời gian nào đủ "sáng" đối với bạn :)


8
Điều này dường như không hoạt động trên git 1.5.6.5, FWIW. Tôi biết, phiên bản cũ và tất cả, nhưng tôi nghĩ điều này có thể giúp ích cho ai đó. git log --after="yesterday"dường như gần đúng nhất, nhưng nó kết thúc bao gồm những điều xảy ra ngày hôm qua cùng với những điều xảy ra sau ngày hôm qua.

3
Đối với tôi: git log --since="yesterday"hoạt động tốt. Trông cũng đẹp với --pretty="oneline"... (git phiên bản 1.7.10)
Nick

--since và - after là những từ đồng nghĩa, vì vậy câu trả lời gợi ý điều tương tự trong câu hỏi. Điều này sẽ cung cấp cho các cam kết trong 24 giờ qua (do đó @ agentbanks217 gặp vấn đề với việc xem các cam kết từ hôm qua). Tôi đã đưa ra một câu trả lời khác bên dưới.
cogg

Ngoài ra, thời gian như "06:00"công việc, đối với những người không thích SA / CH
Hubro

Tôi đã tưởng tượng điều này sẽ hoạt động cho đến 5:59 sáng ngày hôm sau. Tuy nhiên, nó chỉ liệt kê các cam kết trong cùng ngày (tức là, nó ngừng hoạt động vào lúc nửa đêm)
binaryfunt

67

Có lẽ tốt nhất là sử dụng

git log --since="6am"

Bạn có thể điều chỉnh thời gian để thuận tiện cho mình;)


Cũng thêm - tất cả để xem nhật ký của tất cả các chi nhánh trong khoảng thời gian này
schoetbi

22

Bạn có thể tạo bí danh để rút ngắn lệnh này

git config --global alias.today 'log --since=7am'

và sau đó thực thi:

git today

21

Để nhận được cam kết từ tất cả ngày hôm nay ...

git log --since=midnight

5

Đã có một số câu trả lời đúng hữu ích (ví dụ git log --since="6am":) nhưng thật kỳ lạ là ngày tháng đặc biệt của Git bị thiếu trong tài liệu (ít nhất là googling "hôm qua" "trang web: git-scm.com không trả về kết quả).

Có nhiều cách để tìm ra những gì có sẵn, ví dụ câu trả lời cho Đặc tả cho cú pháp của ngày tháng git đặc biệt hữu ích. Trong một lần Ryan O'Hara chỉ ra rằng

it seems to accept all formats that it can output, as described in the documentation for the --date option:

--date=(relative|local|default|iso|rfc|short|raw)

Chỉ có hiệu lực đối với những ngày được hiển thị ở định dạng con người có thể đọc được, chẳng hạn như khi sử dụng --pretty. log.datebiến cấu hình đặt giá trị mặc định cho --datetùy chọn của lệnh nhật ký .

--date=relative hiển thị ngày tháng so với thời gian hiện tại, ví dụ: "2 giờ trước".

--date=local hiển thị dấu thời gian trong múi giờ địa phương của người dùng.

--date=iso(hoặc --date=iso8601) hiển thị dấu thời gian ở định dạng ISO 8601.

--date=rfc(hoặc --date=rfc2822) hiển thị dấu thời gian ở định dạng RFC 2822, thường thấy trong các thư E-mail.

--date=shortchỉ hiển thị ngày nhưng không hiển thị thời gian, ở YYYY-MM-DDđịnh dạng.

--date=rawhiển thị ngày ở định dạng git thô nội bộ %s %z.

--date=default hiển thị dấu thời gian trong múi giờ gốc (của người cam kết hoặc của tác giả).

Câu trả lời yêu thích của tôi có từ me_and người hướng dẫn chúng ta lớp date.c git . Quét xuống và bạn tìm thấy mã này (tại thời điểm viết, nó nằm trên dòng 925):

Tôi chắc chắn đang sử dụng git log --before=tea, mặc dù nhìn vào date_teachức năng, tôi không nghĩ rằng họ đã đọc Rupert Brooke :


4

Btw, điều này cũng hoạt động:
git log --since=am


4
Cẩn thận mặc dù, điều này tương đương với --since=noon.
yoyo
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.