Câu trả lời:
Đó không phải là "hệ thống ống nước", nhưng nó sẽ làm chính xác những gì bạn muốn:
$ git log --format=%B -n 1 <commit>
Nếu bạn thực sự cần một lệnh "hệ thống ống nước" (không chắc tại sao đó là một yêu cầu), bạn có thể sử dụng rev-list
:
$ git rev-list --format=%B --max-count=1 <commit>
Mặc dù rev-list
cũng sẽ in ra sha cam kết (trên dòng đầu tiên) ngoài thông điệp cam kết.
%s%b
thay vì %B
(trên hộp Linux)
%B
là một công cụ xác định chính xác (ít nhất, trong Git 1.7.2, không chắc chắn khi nó được thêm vào).
%B
đã được thêm vào sau 1.7.1 (có thể trong 1.7.1.1).
$ git log --format=%B -n 1 <commit> | cat -
Điều đó sẽ cung cấp cho bạn thông điệp cam kết và không có cam kết sha, và bạn có thể "dẫn" nó. Tôi thực sự sử dụng điều này như là một phần của tập lệnh CI của tôi.
git show
là một lệnh hệ thống ống nước nhiều hơn git log
và có cùng các tùy chọn định dạng:
git show -s --format=%B SHA1
%s
thay vì %B
.
Không phải hệ thống ống nước, nhưng tôi có những thứ này trong .gitconfig:
lsum = log -n 1 --pretty=format:'%s'
lmsg = log -n 1 --pretty=format:'%s%n%n%b'
Đó là "tóm tắt cuối cùng" và "tin nhắn cuối cùng". Bạn có thể cung cấp một cam kết để có được bản tóm tắt hoặc thông điệp của cam kết đó. (Tôi đang sử dụng 1.7.0.5 nên không có% B.)
Điều này sẽ cung cấp cho bạn một danh sách rất nhỏ gọn của tất cả các tin nhắn cho bất kỳ thời gian được chỉ định.
git log --since=1/11/2011 --until=28/11/2011 --no-merges --format=%B > CHANGELOG.TXT
Tôi bắt đầu sử dụng
git show-branch --no-name <hash>
Nó dường như nhanh hơn
git show -s --format=%s <hash>
Cả hai đều cho kết quả như nhau
git show -s --oneline <commit>