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-listcũ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%bthay vì %B(trên hộp Linux)
%Blà 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 showlà một lệnh hệ thống ống nước nhiều hơn git logvà có cùng các tùy chọn định dạng:
git show -s --format=%B SHA1
%sthay 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>