Ý git log --decorate
muốn được đặt theo mặc định:
- HEAD bằng màu lục lam
- cành cây ở xa màu đỏ
- thẻ màu xanh lá cây
và có thể được thay đổi thông qua color.decorate
cấu hình.
Nhưng git log --format
không cung cấp cách hiển thị cụ thể HEAD
hoặc điều khiển từ xa hoặc nhánh: cả ba đều được hiển thị thông qua%d
, với một màu có thể.
Cập nhật tháng 5 năm 2013, như được đề cập bên dưới bởi Elad Shahar (được ủng hộ), git 1.8.3 cung cấp thêm một tùy chọn:
git log –format
bây giờ thể thao một %C(auto)
mã thông báo cho Git sử dụng màu sắc khi phân giải %d
(trang trí),%h
(tên đối tượng cam kết ngắn), v.v. cho đầu ra của thiết bị đầu cuối.
Bài đăng trên blog Atlassian này nhận xét rằng tính năng này là một phần của một số tính năng khác tập trung vào định dạng ( git rebase
, git count-objects
) và màu sắc (git branch -vv
)
Điều này bổ sung cho phiên auto,reset
bản 1.8.2 trước đó , tự động tắt màu khi đầu ra không được sử dụng cho thiết bị đầu cuối1
%C(auto,blue)Hello%C(auto,reset)
Lưu ý: git 2.4+ (Quý 2 năm 2015) sẽ thực hiện tốt hơn việc đặt lại màu xung quanh tên nhánh.
Xem cam kết 5ee8758 của Junio C Hamano ( gitster
) :
log --decorate
: không bị rò rỉ màu "cam kết" vào mục tiếp theo
Trong " git log --decorate
", bạn sẽ thấy tiêu đề cam kết như thế này:
commit ... (HEAD, jc/decorate-leaky-separator-color)
trong đó " commit ... (
" được vẽ vào color.diff.commit
" HEAD
" trong color.decorate.head
", ,
" trong color.diff.commit
, tên chi nhánh tại
color.decorate.branch
và sau đó đóng ")
" trong color.diff.commit
.
Nếu bạn muốn sơn HEAD và tên chi nhánh cục bộ cùng màu với văn bản nội dung (có lẽ vì màu lục lam và xanh lá cây quá mờ trên thiết bị đầu cuối đen trắng để có thể đọc được), bạn sẽ không muốn phải nói
[color "decorate"]
head = black
branch = black
bởi vì bạn sẽ không thể sử dụng lại cùng một cấu hình trên thiết bị đầu cuối trắng-đen. Bạn sẽ ngây thơ mong đợi
[color "decorate"]
head = normal
branch = normal
để làm việc, nhưng tiếc là nó không.
Nó vẽ chuỗi "HEAD
" và tên chi nhánh cùng màu với dấu ngoặc đơn mở đầu hoặc dấu phẩy giữa các phần tử trang trí.
Điều này là do mã quên đặt lại màu sau khi in "tiền tố" bằng màu của chính nó.
Lưu ý rằng git 2.5 (Quý 2 năm 2015) sửa một lỗi:
Xem cam kết 429ad20 bởi Junio C Hamano ( gitster
) , ngày 13 tháng 5 năm 2015.
(Được hợp nhất bởi Junio C Hamano - gitster
- trong cam kết fd70780 , ngày 22 tháng 5 năm 2015)
log
: không rút ngắn tên trang trí quá sớm
Các " log --decorate
" tăng cường trong Git 2.4 rằng chương trình cam kết ở mũi của chi nhánh ví dụ như hiện tại " HEAD -> master
", không làm việc với --decorate = đầy đủ.
Git 2.9.x + (Q3 2016) sẽ sửa một lỗi khác và vinh dự color=auto
cho%C(auto)
Git 2.10.2 (tháng 10 năm 2016) sửa các lỗi khác với cam kết 82b83da (29 tháng 9 năm 2016) và cam kết c99ad27 (17 tháng 9 năm 2016) bởi René Scharfe (``) .
(Được hợp nhất bởi Junio C Hamano - gitster
- trong cam kết 76796d4 , ngày 28 tháng 10 năm 2016)
pretty
: tránh thêm thiết lập lại %C(auto)
nếu đầu ra trống
Chúng tôi tạo ra một chuỗi thoát để đặt lại màu và thuộc tính %C(auto)
để đảm bảo màu tự động được hiển thị như dự định.
Dừng làm điều đó nếu strbuf đầu ra trống , tức là khi %C(auto)
xuất hiện ở đầu chuỗi định dạng, vì khi đó không cần thiết lập lại và chúng tôi tiết kiệm một vài byte trong đầu ra.
pretty
: hãy %C(auto)
đặt lại tất cả các thuộc tính
Màu sắc thiết lập lại và các thuộc tính khi %C(auto)
để cho phép toàn quyền kiểm soát tự động qua chúng; nếu không các thuộc tính như in đậm hoặc đảo ngược vẫn có thể có hiệu lực từ các %C
trình giữ chỗ trước đó .