Làm cách nào để tô màu cho đầu ra trạng thái git?


93

Tôi muốn chỉnh màu đầu ra git-status để:

untracked files = magenta
new files = green
modified files = blue
deleted files = red

Thay vào đó, tôi thấy các tệp theo giai đoạn có màu xanh lục và các tệp chưa được phân giai đoạn có màu xanh lam: ảnh chụp màn hình git-status

.Gitconfig của tôi được thiết lập như sau dựa trên một số tìm kiếm:

[color]
status = auto

[color "status"]
added = green
changed = blue
untracked = magenta
deleted = red

2
Lưu ý: git 2.9.1 hỗ trợ các thuộc tính in nghiêng và gạch ngang. Xem chỉnh sửa của tôi bên dưới.
VonC

Câu trả lời:


131

Từ git config doc :

color.status.<slot>

Sử dụng màu tùy chỉnh để tô màu trạng thái. <slot>là một trong những:

  • header (văn bản tiêu đề của thông báo trạng thái),
  • addedhoặc updated(các tệp được thêm vào nhưng không được cam kết),
  • changed (các tệp được thay đổi nhưng không được thêm vào chỉ mục),
  • untracked (các tệp không được git theo dõi),
  • branch (chi nhánh hiện tại),
  • nobranch (màu mà cảnh báo không có nhánh được hiển thị, mặc định là màu đỏ),
  • localBranchhoặc remoteBranch(tên chi nhánh cục bộ và từ xa, tương ứng, khi thông tin chi nhánh và theo dõi được hiển thị ở định dạng ngắn trạng thái),
  • unmerged (các tệp có các thay đổi chưa được hợp nhất).

Giá trị của các biến này có thể được chỉ định như trong color.branch.<slot>.

Vì vậy, điều này sẽ hoạt động:

git config color.status.changed blue
git config color.status.untracked magenta

Tuy nhiên:

new files = green
deleted files = red

Không thể: bạn cần chọn một màu:

  • nếu chúng được thêm vào chỉ mục, chúng sẽ chọn màu cho color.status.added.
  • nếu chúng không được thêm vào chỉ mục, chúng sẽ chọn màu hoặc color.status.modified.

Tất nhiên, như nhận xét của elboletaire :

Hãy nhớ bật đầu ra màu nếu nó chưa được bật trước đó:

git config --global color.ui true

Shaun Luttin cho biết thêm:

Lệnh cũng có thể nhận nhiều tham số trong dấu ngoặc kép. Điều này bao gồm hai màu (nền trước) từ danh sách này:

bình thường, đen, đỏ, xanh lá cây, vàng, xanh lam, đỏ tươi, lục lam và trắng;

và nó cũng bao gồm một thuộc tính (kiểu) từ danh sách này:

đậm, mờ, ul, nhấp nháy và đảo ngược.

Vì vậy, điều này sẽ hoạt động:

git config color.status.changed "blue normal bold"
git config color.status.header "white normal dim"

Lưu ý: với git 2.9.1 (tháng 7 năm 2016), lược đồ màu đầu ra đã học được hai thuộc tính mới, in nghiêngđình công, ngoài việc in đậm, đảo ngược hiện có, v.v.

Xem cam kết 9dc3515 , cam kết 54590a0 , cam kết 5621068 , cam kết df8e472 , cam kết ae989a6 , cam kết adb3356 , cam kết 0111681 (23/06/2016) bởi Jeff King ( peff) .
(Hợp nhất bởi Junio ​​C Hamano - gitster- trong cam kết 3c5de5c , ngày 11 tháng 7 năm 2016)

Nó cũng cho phép " no-" phủ định các thuộc tính

Sử dụng " no-bold" hơn là " nobold" dễ đọc hơn và gõ tự nhiên hơn (dù sao thì với tôi, mặc dù tôi là người đã giới thiệu "nobold" ngay từ đầu). Thật dễ dàng để cho phép cả hai.


30
Hãy nhớ để cho phép màu đầu ra nếu nó chưa được kích hoạt trước đó:git config --global color.ui true
elboletaire

1
@elboletaire điểm tốt. Tôi đã bao gồm nó trong câu trả lời để hiển thị nhiều hơn.
VonC

1
Cảm ơn, color.ui là câu trả lời.
Robeezy
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.