Làm thế nào để đọc bình luận cam kết cuối cùng?


401

Thông thường trong một lần xác nhận ( $ git -commit -m ""), tôi muốn đọc bình luận cuối cùng của mình để ghi nhớ những tiến bộ tôi đã đạt được. Có cách nào dễ dàng để truy cập trực tiếp thông điệp cam kết cuối cùng thông qua dòng lệnh không? (Tôi đang sử dụng Windows.)


6
Nếu đó là một hành động thông thường, hãy tạo một alias(ví dụ wherewasi;-) cho giải pháp / dòng lệnh bạn đã chọn. Bạn có thể bao gồm các thông tin chi nhánh là tốt.
Philip Oakley

Câu trả lời:


756
git show

là loại nhanh nhất để gõ, nhưng cũng cho bạn thấy sự khác biệt.

git log -1

là nhanh chóng và đơn giản.

git log -1 --pretty=%B

nếu bạn chỉ cần thông điệp cam kết và không có gì khác.


2
định dạng% B là những gì tôi cần để không có thông điệp cam kết thụt vào. Và vâng, @Juh_, mặc dù git gui không phù hợp với bạn, nhưng bạn nên sử dụng văn bản 80 màu trong các thông điệp cam kết, không phải mỗi dòng.
Peter Cordes

4
@Juh_ Bạn có thể hiển thị toàn bộ tin nhắn bằng cách sử dụng git log -1 --pretty=%B | cat, nhưng như Peter đã nói, bạn nên cố gắng giữ nó đến 80 ký tự.
Ruckus T-Boom

3
@Juh_ này là một chút quá muộn nhưng nếu bạn muốn cam kết thông điệp tới line-bọc, chỉ cần đường ống đầu ra để cat ví dụ:git log -1 --pretty= | cat
kosgeinsky

8
Ai đó đang tìm kiếm thêm thông tin về phần trăm giữ chỗ, xem: kernel.org/pub/software/scm/git/docs/iêu (cuộn xuống format:<string>).
imme

3
Nếu bạn thêm format:tiền tố vào %Bnhư được đề xuất trong tài liệu hướng dẫn, nó sẽ không hiển thị thêm các dòng trống ở cuối đầu ra:git log -1 --pretty=format:%B
Mariano Ruiz

84

Nói chung là:

git log -n

sẽ hiển thị cho bạn các ntin nhắn cam kết cuối cùng

Thanh lịch hơn - nếu bạn muốn có một cái nhìn tổng quan nhanh về các cam kết của mình

git log --oneline -n

Điều này sẽ chỉ hiển thị dòng đầu tiên của ntin nhắn cam kết cuối cùng .

Bạn có thể lưu cái này dưới dạng bí danh git hoặc bí danh shell với lệnh ngắn hơn. Tôi đã có nó trong vỏ của tôi glog, ví dụ, và tôi có thể thấy 10 tin nhắn cam kết cuối cùng của tôi với glog -10.


23

git log -1sẽ hiển thị thông báo cam kết mới nhất hoặc git log -1 --onelinenếu bạn chỉ muốn sha1 và thông báo cam kết liên quan được hiển thị.


Điều gì giống nhau trong đồng bóng?
Nevin Raj Victor

14

Bạn có thể dùng

git show -s --format=%s

Ở đây --formatcho phép các tùy chọn in ấn khác nhau, xem tài liệu ở đây . Cụ thể, %scó nghĩa là 'chủ đề'. Ngoài ra, -sviết tắt của --no-patch, mà ngăn chặn nội dung khác.

Tôi thường sử dụng

git show -s --format='%h %s'

trong đó %hbiểu thị một hàm băm ngắn của cam kết

Một cách khác là

git show-branch --no-name HEAD

Nó dường như chạy nhanh hơn so với cách khác.

Tôi thực sự đã viết một công cụ nhỏ để xem trạng thái của tất cả các repos của tôi. Bạn có thể tìm thấy nó trên github .


IMO này tốt hơn câu trả lời được chấp nhận cho nhiều lần xác nhận. Nó không tạo ra các ngắt dòng không cần thiết cho tôi. Nhiều cam kết (tức là 5 quá khứ) có thể được hiển thị bằng cách bao gồm -5, tức làgit show -s --format=%s -5
Sigmatics

10

git log -1 branch_name sẽ hiển thị cho bạn tin nhắn cuối cùng từ chi nhánh được chỉ định (nghĩa là không nhất thiết là chi nhánh bạn hiện đang ở).


7

Đối với một cái gì đó dễ đọc hơn một chút, hãy chạy lệnh này một lần:

git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"

để khi bạn chạy:

git lg

bạn nhận được một bài đọc tốt đẹp. Để chỉ hiển thị dòng cuối cùng:

git lg -1

Giải pháp tìm thấy ở đây


4

Để bắt đầu với git log -1 --pretty='%s'

Nhưng cái dưới đây bao gồm tất cả các trường hợp,

git log --pretty='format:%Creset%s' --no-merges -1

  • Không có khoảng trắng không mong muốn
  • Hủy bỏ hợp nhất cam kết
  • Không có id cam kết, ngày, Chỉ hiển thị các tin nhắn.

Dán và xem cho chính mình



0

Tôi chỉ tìm ra một cách giải quyết với shell bằng cách lấy lệnh trước đó.

Nhấn Ctrl-R để hiển thị lệnh tìm kiếm ngược:

reverse-i-search

Sau đó bắt đầu nhập git commit -m , điều này sẽ thêm lệnh này dưới dạng lệnh tìm kiếm và điều này mang đến cam kết git trước đó với thông báo của nó:

reverse-i-search`git commit -m`: git commit -m "message"

Đi vào. Đó là nó!

(đã thử nghiệm trong Ubuntu shell)

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.